{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1357","CWE-494"]}},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37","relationships":[{"target":{"id":"CWE-1059","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1059"]}},{"id":"D43","name":"Malicious Dependencies","shortDescription":{"text":"Malicious Dependencies"},"helpUri":"https://codehealth.canine.dev/dimensions/D43","relationships":[{"target":{"id":"CWE-506","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-506"]}},{"id":"AX10","name":"Code composition","shortDescription":{"text":"Code composition"},"helpUri":"https://codehealth.canine.dev/dimensions/AX10"},{"id":"AX5","name":"Architecture \u0026 structure","shortDescription":{"text":"Architecture \u0026 structure"},"helpUri":"https://codehealth.canine.dev/dimensions/AX5"},{"id":"AX7","name":"Slice cohesion","shortDescription":{"text":"Slice cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/AX7"},{"id":"AX9","name":"CQS / query purity","shortDescription":{"text":"CQS / query purity"},"helpUri":"https://codehealth.canine.dev/dimensions/AX9"},{"id":"AXB2","name":"Runtime readiness","shortDescription":{"text":"Runtime readiness"},"helpUri":"https://codehealth.canine.dev/dimensions/AXB2"},{"id":"M1","name":"Documentation (README)","shortDescription":{"text":"Documentation (README)"},"helpUri":"https://codehealth.canine.dev/dimensions/M1"},{"id":"M2","name":"Architecture documentation","shortDescription":{"text":"Architecture documentation"},"helpUri":"https://codehealth.canine.dev/dimensions/M2"},{"id":"M3","name":"Folder \u0026 project structure","shortDescription":{"text":"Folder \u0026 project structure"},"helpUri":"https://codehealth.canine.dev/dimensions/M3"},{"id":"M4","name":"Documentation accuracy","shortDescription":{"text":"Documentation accuracy"},"helpUri":"https://codehealth.canine.dev/dimensions/M4"},{"id":"P1","name":"CI/CD gates","shortDescription":{"text":"CI/CD gates"},"helpUri":"https://codehealth.canine.dev/dimensions/P1"},{"id":"P12","name":"CI test-gate honesty","shortDescription":{"text":"CI test-gate honesty"},"helpUri":"https://codehealth.canine.dev/dimensions/P12"},{"id":"P3","name":"Security \u0026 performance tooling","shortDescription":{"text":"Security \u0026 performance tooling"},"helpUri":"https://codehealth.canine.dev/dimensions/P3"},{"id":"P4","name":"Deployment \u0026 Rollback","shortDescription":{"text":"Deployment \u0026 Rollback"},"helpUri":"https://codehealth.canine.dev/dimensions/P4"},{"id":"P6","name":"Release Hygiene","shortDescription":{"text":"Release Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/P6"},{"id":"SC1","name":"Supply-chain hygiene","shortDescription":{"text":"Supply-chain hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/SC1"},{"id":"X9","name":"Subsumed condition operand","shortDescription":{"text":"Subsumed condition operand"},"helpUri":"https://codehealth.canine.dev/dimensions/X9"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_expr (cyclomatic 300): Writer::write_expr has cyclomatic complexity 300 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2430}}}],"partialFingerprints":{"codehealthFindingId/v1":"94f8853414ecf1df4ad696f08090aa38eb4a7bb8ce63cf497a4b4f35a96da93c"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::next_block (cyclomatic 291): Frontend::next_block has cyclomatic complexity 291 (threshold 15). Of this number, 289 points are the body\u0027s own statements and 2 belong to one function item inside it that branches. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bae12ec0178af241190741b47e9115f91d31fc1b2498de2bf3ebd23d849bd69"}},{"ruleId":"D1","level":"warning","message":{"text":"BlockContext::cache_expression_value (cyclomatic 249): BlockContext::cache_expression_value has cyclomatic complexity 249 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e671691ddbba3c5a7c6b0c27495a1decc1b3c13c35678612589dd1e3b1153da"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_expression (cyclomatic 211): Validator::validate_expression has cyclomatic complexity 211 (threshold 15). Of this number, 205 points are the body\u0027s own statements and 6 belong to one function item inside it that branches. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":382}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff26223ba81edb44dd509802d2bd7cdc909d470c8750e8e9ecea0c63181f91b0"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::put_expression (cyclomatic 205): Writer::put_expression has cyclomatic complexity 205 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2134}}}],"partialFingerprints":{"codehealthFindingId/v1":"3af75d132dd50d0a5ddaa56e4ef5932f9959595bcb0f3e62bec692aa803e1f26"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_functions (cyclomatic 183): Writer::write_functions has cyclomatic complexity 183 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6879}}}],"partialFingerprints":{"codehealthFindingId/v1":"48727a5bba0a4278c82869874fac7d3847a4f5ff77e03caef4997aa8fa0d1e47"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_standard_builtins (cyclomatic 177): naga::front::glsl::builtins::inject_standard_builtins has cyclomatic complexity 177 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"e94a32980894902c3ff9a4e8d02bb5daad7ea78520ead358c0b2eb91731c6813"}},{"ruleId":"D1","level":"warning","message":{"text":"Queue::process (cyclomatic 177): Queue::process has cyclomatic complexity 177 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"94ea5e4193841508ece6fde6cfadbc0b383b12c19ef3cf0882da672172c0a225"}},{"ruleId":"D1","level":"warning","message":{"text":"VaryingContext::validate_impl (cyclomatic 133): VaryingContext::validate_impl has cyclomatic complexity 133 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6cb76f478c632b48a17d9907390925c9382efaac185e8038ffb643c9e4a0f22"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_block_impl (cyclomatic 133): Validator::validate_block_impl has cyclomatic complexity 133 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":789}}}],"partialFingerprints":{"codehealthFindingId/v1":"c55433de8af8572576a8da710b26f299add8132eb563d4d2d56183c10d33d5bc"}},{"ruleId":"D1","level":"warning","message":{"text":"CapabilitiesQuery::new (cyclomatic 133): CapabilitiesQuery::new has cyclomatic complexity 133 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":675}}}],"partialFingerprints":{"codehealthFindingId/v1":"4161b9a731ae517d8dfde685e82f2becc18c027ec27dee931a8d759d4796d2d0"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_math_expression (cyclomatic 132): Writer::write_math_expression has cyclomatic complexity 132 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3078}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfde02d7804057af53b5028161c29ebcf80fa529859d9234010facfb8ff7a691"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_expr (cyclomatic 128): Writer::write_expr has cyclomatic complexity 128 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3729}}}],"partialFingerprints":{"codehealthFindingId/v1":"da720493eaabdd3ec8550302a83c1f36f4d9ddc7047ecb80301cf7a3a01259fd"}},{"ruleId":"D1","level":"warning","message":{"text":"Error::as_parse_error (cyclomatic 123): Error::as_parse_error has cyclomatic complexity 123 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":678}}}],"partialFingerprints":{"codehealthFindingId/v1":"83198729e679ca7d9a051de523ef4e8429ed28b9cec5a04a373266ab6fcd3324"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_stmt (cyclomatic 122): Writer::write_stmt has cyclomatic complexity 122 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2198}}}],"partialFingerprints":{"codehealthFindingId/v1":"094027d6d36ea4f2e86698537ad42db5c4567571f9b923cdfb10246dba9888c4"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_render_pipeline_or_error_inner (cyclomatic 122): Device::create_render_pipeline_or_error_inner has cyclomatic complexity 122 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4655}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1b3b1377091decf1faa032fdd58aa2d2f1767e145e1f9a7b345f823946277db"}},{"ruleId":"D1","level":"warning","message":{"text":"PrivateCapabilities::map_texture_format (cyclomatic 122): PrivateCapabilities::map_texture_format has cyclomatic complexity 122 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/conv.rs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"d52740add4fbfa9c2b48e724e6b7fe1f4816b8114dbf81a0653bd23dcd9a6076"}},{"ruleId":"D1","level":"warning","message":{"text":"PrivateTextureFormatCapabilities::map_format (cyclomatic 120): PrivateTextureFormatCapabilities::map_format has cyclomatic complexity 120 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1675}}}],"partialFingerprints":{"codehealthFindingId/v1":"70cf3c903fe8cc973216ac293e386a15f809602a0e3f9770f7a91cfcf4e8c97e"}},{"ruleId":"D1","level":"warning","message":{"text":"ConstantEvaluator::cast (cyclomatic 119): ConstantEvaluator::cast has cyclomatic complexity 119 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2486}}}],"partialFingerprints":{"codehealthFindingId/v1":"03be227b50a4ace10ef75a809aad36d8d3270dcd3bf8c5897ecddb6685e00408"}},{"ruleId":"D1","level":"warning","message":{"text":"ConstantEvaluator::binary_op (cyclomatic 119): ConstantEvaluator::binary_op has cyclomatic complexity 119 (threshold 15). Of this number, 116 points are the body\u0027s own statements and 3 belong to one function item inside it that branches. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2858}}}],"partialFingerprints":{"codehealthFindingId/v1":"c669881364251587a7304c38ff8eecf2fbc5eb3a6b0176a19f8bcca14846f668"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_stmt (cyclomatic 103): Writer::write_stmt has cyclomatic complexity 103 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1609}}}],"partialFingerprints":{"codehealthFindingId/v1":"deb3769d811208e1c4b6e05b72ce2de94cca2c4edd268775b51d569fc4789fce"}},{"ruleId":"D1","level":"warning","message":{"text":"Adapter::expose (cyclomatic 103): Adapter::expose has cyclomatic complexity 103 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a6b2499d7615d0ebf04405765174eed70de901e02acf975eaaed52008b12a63"}},{"ruleId":"D1","level":"warning","message":{"text":"ResolveContext::resolve (cyclomatic 101): ResolveContext::resolve has cyclomatic complexity 101 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/typifier.rs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"30d704d43811145fd8a721e9693cd87c43ab6efe40289b4353cb39f36eb35177"}},{"ruleId":"D1","level":"warning","message":{"text":"Adapter::expose (cyclomatic 96): Adapter::expose has cyclomatic complexity 96 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"cde9ff744012fae601967f008a1c60c6418684802bead64000ccdd85a75e9f93"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::put_block (cyclomatic 95): Writer::put_block has cyclomatic complexity 95 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3923}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a201fcd68f879383ab61c33390d828003e876c726a3cea19de4d751be8b3a04"}},{"ruleId":"D1","level":"warning","message":{"text":"ConstantEvaluator::math (cyclomatic 93): ConstantEvaluator::math has cyclomatic complexity 93 (threshold 15). Of this number, 86 points are the body\u0027s own statements and 7 belong to 4 function items inside it that branch. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1489}}}],"partialFingerprints":{"codehealthFindingId/v1":"292f26ae468ebe382e61fce10ae8b0cf5e0eaaa7ecd03c039635391437edfb5c"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_common_builtin (cyclomatic 91): naga::front::glsl::builtins::inject_common_builtin has cyclomatic complexity 91 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1220}}}],"partialFingerprints":{"codehealthFindingId/v1":"da77bf791b4c41cd7b69c561ab19b203815c18ce407bf1d64e24ac41f2fe173b"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::wgsl::parse::conv::map_predeclared_type (cyclomatic 91): naga::front::wgsl::parse::conv::map_predeclared_type has cyclomatic complexity 91 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/conv.rs"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"472a8952e3a2024465af4a879cffe4699a66fe66b3b14c96da471571bd269a90"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_stmt (cyclomatic 90): Writer::write_stmt has cyclomatic complexity 90 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"f317b0622f7f8a5ec0335ac3fef2628554be7e447a75e97d5699b0d0ae349364"}},{"ruleId":"D1","level":"warning","message":{"text":"Lexer::next (cyclomatic 90): Lexer::next has cyclomatic complexity 90 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/lex.rs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"9330720a5db5ab978edaba62c3b48838f7abbfac69073189937be47929a638d7"}},{"ruleId":"D1","level":"warning","message":{"text":"Interface::check_stage (cyclomatic 85): Interface::check_stage has cyclomatic complexity 85 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1563}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fea17b32a353cbcbf3329debd7c3d7edb534a2238fb87105e57442b3ddfec12"}},{"ruleId":"D1","level":"warning","message":{"text":"BlockContext::write_block (cyclomatic 83): BlockContext::write_block has cyclomatic complexity 83 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":3533}}}],"partialFingerprints":{"codehealthFindingId/v1":"c37329ed1aedf8ca756f21bba5f3b42d6cd970ad8cfe1d212182854aafba6861"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_type (cyclomatic 83): Validator::validate_type has cyclomatic complexity 83 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"211151470b50da2f31c7a6053234fbe4b0616ede5e0de8b5e5c3dfb213f3b98a"}},{"ruleId":"D1","level":"warning","message":{"text":"TextureFormat::guaranteed_format_features (cyclomatic 82): TextureFormat::guaranteed_format_features has cyclomatic complexity 82 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/texture/format.rs"},"region":{"startLine":914}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbd47631239803d58f063984a90d7d219f5cfe537fa6288961cbf3ae7e2c9d03"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_expr_plain_form (cyclomatic 80): Writer::write_expr_plain_form has cyclomatic complexity 80 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1502}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dbe0ce13347038fe158ad11eac914a2b7131be1f83b7f72676a9a76d7a9c85c"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_entry_point (cyclomatic 79): Validator::validate_entry_point has cyclomatic complexity 79 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":1257}}}],"partialFingerprints":{"codehealthFindingId/v1":"f755b005d928b605150ba787e0f5fd0a71faf285d281ab4311daf1efba66a2e4"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::call_builtin (cyclomatic 74): Lowerer::call_builtin has cyclomatic complexity 74 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3094}}}],"partialFingerprints":{"codehealthFindingId/v1":"279ad3deb1d870cf8d4000c8cec9c6baf969efbf74c3d661bfb9db71bbd73e84"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::map_binding (cyclomatic 73): Writer::map_binding has cyclomatic complexity 73 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3118}}}],"partialFingerprints":{"codehealthFindingId/v1":"799475f73fcbfdf3e6bf5117e0002b0634bca835f46365ba18a287b6a4c9383a"}},{"ruleId":"D1","level":"warning","message":{"text":"StatementGraph::add (cyclomatic 71): StatementGraph::add has cyclomatic complexity 71 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2a6d862ec76eac0aa800799679568be067c66754620a1622e7d4d303a33fc69"}},{"ruleId":"D1","level":"warning","message":{"text":"Context::lower_inner (cyclomatic 71): Context::lower_inner has cyclomatic complexity 71 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"646030d4d71bf16a025770aa63ec4011fccae653eb6c33ec1f5978dfcd8ced2f"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_builtin (cyclomatic 70): naga::front::glsl::builtins::inject_builtin has cyclomatic complexity 70 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"62538b2abe9ed1f81a5f2c671393d828cd9563c91864e6fbbca610e72b87f823"}},{"ruleId":"D1","level":"warning","message":{"text":"FeaturesManager::check_availability (cyclomatic 69): FeaturesManager::check_availability has cyclomatic complexity 69 (threshold 15). To reduce it, name the conditions: bind each compound test to a well-named local or a small predicate function, so the body reads as a sequence of named decisions rather than a chain of operators."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdeaa4224859679d6ea21e667ca6731616c473aeee1256346ec82fbb156bd84c"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::collect_required_features (cyclomatic 62): Writer::collect_required_features has cyclomatic complexity 62 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"f64a632399be3d7a14bd1297070d7403f0480a38e8382c1548653ae1ed84380b"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::back::dot::write_function_expressions (cyclomatic 60): naga::back::dot::write_function_expressions has cyclomatic complexity 60 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dd3e07bb871a44f9808b36e1961f30489e7bc45dbe652158867c14b676363fa"}},{"ruleId":"D1","level":"warning","message":{"text":"RenderPassInfo::start (cyclomatic 59): RenderPassInfo::start has cyclomatic complexity 59 (threshold 15). Of this number, 54 points are the body\u0027s own statements and 5 belong to one function item inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1218}}}],"partialFingerprints":{"codehealthFindingId/v1":"cddb6b6a39751bae794f90c557796588d3d5066813fd0defce676a89ebce7bfa"}},{"ruleId":"D1","level":"warning","message":{"text":"InstanceShared::inspect (cyclomatic 59): InstanceShared::inspect has cyclomatic complexity 59 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1922}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca3b15b330fccf0cfc777a81969d84b19fb49827168ee2ab103fd5da7b7f0284"}},{"ruleId":"D1","level":"warning","message":{"text":"Adapter::texture_format_capabilities (cyclomatic 55): Adapter::texture_format_capabilities has cyclomatic complexity 55 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1149}}}],"partialFingerprints":{"codehealthFindingId/v1":"17ea76a251ef1928ce5ac66a7f6960d6dd361a5611019ad88c90f2d6e70e0903"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_function (cyclomatic 54): Writer::write_function has cyclomatic complexity 54 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1260}}}],"partialFingerprints":{"codehealthFindingId/v1":"bea0494de230384cfbaa186dae888bb9e0c62c99eadff2d009d4d272807a2c26"}},{"ruleId":"D1","level":"warning","message":{"text":"Player::process (cyclomatic 54): Player::process has cyclomatic complexity 54 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2fdbdf6484d35698dba6c98728d8840b5eb494800d6751ba4f5f9e632b41d38"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::parse (cyclomatic 53): Frontend::parse has cyclomatic complexity 53 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1714}}}],"partialFingerprints":{"codehealthFindingId/v1":"8638800b1f500968e22591bc2e69cd0eb9522568cb4e90f2ad09eeb7c5d1785e"}},{"ruleId":"D1","level":"warning","message":{"text":"Parser::global_decl (cyclomatic 53): Parser::global_decl has cyclomatic complexity 53 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1839}}}],"partialFingerprints":{"codehealthFindingId/v1":"583dc0272b5523cd637edd345c8a93f5ed38776bfc06bbeff40159d60f3205c7"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::statement (cyclomatic 51): Lowerer::statement has cyclomatic complexity 51 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1794}}}],"partialFingerprints":{"codehealthFindingId/v1":"fecb7f9eb57ddb58b89964711b59e4b803c7802b952318d44c220af9111e30df"}},{"ruleId":"D1","level":"warning","message":{"text":"FunctionInfo::process_expression (cyclomatic 51): FunctionInfo::process_expression has cyclomatic complexity 51 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":531}}}],"partialFingerprints":{"codehealthFindingId/v1":"b59c81fa0c1cb30e4917c53a94ee907137afd1205e6c1a883b20c4465ea9cb88"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_global_var (cyclomatic 50): Validator::validate_global_var has cyclomatic complexity 50 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":920}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5e6c8b8c61ecf13f5dc4346e6747bf3c650642513942864321c7cdff927cd61"}},{"ruleId":"D1","level":"warning","message":{"text":"Adapter::texture_format_capabilities (cyclomatic 50): Adapter::texture_format_capabilities has cyclomatic complexity 50 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"8410de98c3a9a826ced4f1c3e34fd31ebab892f47bddfc2e43fc9ab4c6b7dbe6"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::command::ray_tracing::iter_blas (cyclomatic 49): wgpu_core::command::ray_tracing::iter_blas has cyclomatic complexity 49 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":588}}}],"partialFingerprints":{"codehealthFindingId/v1":"51068f714d66c09e5f648724e71a33f966b8cd0c8114c62d4e57ea93c3aafc77"}},{"ruleId":"D1","level":"warning","message":{"text":"Texture::create_view_inner (cyclomatic 48): Texture::create_view_inner has cyclomatic complexity 48 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":1856}}}],"partialFingerprints":{"codehealthFindingId/v1":"22777063d49d68719aa349a96779ab03e881be7c4641b72f381f661c99340d01"}},{"ruleId":"D1","level":"warning","message":{"text":"PhysicalDeviceProperties::get_required_extensions (cyclomatic 48): PhysicalDeviceProperties::get_required_extensions has cyclomatic complexity 48 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1247}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7c1d20159d17c9ab5aa9561464d847931292e4422d4a8f590c9093023cfde13"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write (cyclomatic 47): Writer::write has cyclomatic complexity 47 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0023a7e6edd6fc69e20168c15f32c9082d79696ef6cde5cf4086b0a67d3a0cc"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::wgsl::parse::lexer::consume_token (cyclomatic 47): naga::front::wgsl::parse::lexer::consume_token has cyclomatic complexity 47 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/lexer.rs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fe0b0ed9c423bcd5bc00376b977c0ad1033ba3af27099aca10889b1c91a60b9"}},{"ruleId":"D1","level":"warning","message":{"text":"Adapter::device_from_raw (cyclomatic 47): Adapter::device_from_raw has cyclomatic complexity 47 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2667}}}],"partialFingerprints":{"codehealthFindingId/v1":"72a09c40295cbc0ff4cf86b8b2547a1f08e0b11496f4b4295d6568cb39ff36e0"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_render_pipeline (cyclomatic 46): Device::create_render_pipeline has cyclomatic complexity 46 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1425}}}],"partialFingerprints":{"codehealthFindingId/v1":"24ac79f4277c26f0f0cd6374fe8a917b7f16e54effd1a54f5afbaacd8603120d"}},{"ruleId":"D1","level":"warning","message":{"text":"ParsingContext::parse_statement (cyclomatic 45): ParsingContext::parse_statement has cyclomatic complexity 45 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/functions.rs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"09b670ae647a421534cdf0221a74bfa9147f29fea240b01330a2cd9cd5901425"}},{"ruleId":"D1","level":"warning","message":{"text":"FunctionInfo::process_block (cyclomatic 45): FunctionInfo::process_block has cyclomatic complexity 45 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":879}}}],"partialFingerprints":{"codehealthFindingId/v1":"957b64898fdda04f285bb81453d8717e3f451f63d6512b9c3480c72d96982697"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_xtask::cts::run_cts (cyclomatic 45): wgpu_xtask::cts::run_cts has cyclomatic complexity 45 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"xtask/src/cts.rs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cff577b9860452b257a8c911792bfba7067bc675b2b761a66f2efa372959971"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::compact::compact (cyclomatic 44): naga::compact::compact has cyclomatic complexity 44 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/mod.rs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bd94ef92d5d94f21acc017d784a0ea567a6a39b094fb4a7dc354fd8d0fa38b8"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_double_builtin (cyclomatic 44): naga::front::glsl::builtins::inject_double_builtin has cyclomatic complexity 44 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1047}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ff85282a9ca75592190fa21b4d0b9a1a1ad91f41b9f1fa07f6e7d69867a6c18"}},{"ruleId":"D1","level":"warning","message":{"text":"FeaturesManager::write (cyclomatic 42): FeaturesManager::write has cyclomatic complexity 42 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"713e2333bd8b737b318942ae0a439456669c03d7ad39edbd302724627c10e53d"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::expression_for_reference (cyclomatic 42): Lowerer::expression_for_reference has cyclomatic complexity 42 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":2391}}}],"partialFingerprints":{"codehealthFindingId/v1":"fea260fe9eacdac66aead7416f98b2fb76224e42299f281a42ce691ae38f18a8"}},{"ruleId":"D1","level":"warning","message":{"text":"ResolvedBinding::try_fmt (cyclomatic 41): ResolvedBinding::try_fmt has cyclomatic complexity 41 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":646}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b9337f458c03d3fb98eecb34621ca9abda148d7537009902e3e20b608cc0629"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroCall::call (cyclomatic 41): MacroCall::call has cyclomatic complexity 41 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1588}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e94eb25cee7ba29d6c6ba2595faf434d5eff5130bfb69d2811e3b38770e50df"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::parse_image_sample (cyclomatic 41): Frontend::parse_image_sample has cyclomatic complexity 41 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":490}}}],"partialFingerprints":{"codehealthFindingId/v1":"e431796c38faf4e658f2e90a0f150b54de13f714fee2dea48238677ea6f8ecfa"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::validate_texture_descriptor_inner (cyclomatic 41): Device::validate_texture_descriptor_inner has cyclomatic complexity 41 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1736}}}],"partialFingerprints":{"codehealthFindingId/v1":"19ee47dd9389f7dd019f8424a9f6eae7f6cfb9c380af9aa4646fda07214fb4ed"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_function (cyclomatic 40): Writer::write_function has cyclomatic complexity 40 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1629}}}],"partialFingerprints":{"codehealthFindingId/v1":"19d825135ee7beac256edbf9302df825a9612009d1ef1a1a8bda30121628d9f3"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_logical_layout (cyclomatic 40): Writer::write_logical_layout has cyclomatic complexity 40 (threshold 15). Of this number, 39 points are the body\u0027s own statements and 1 belongs to one function item inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3713}}}],"partialFingerprints":{"codehealthFindingId/v1":"370f0e9410fef8cb9e18f83be10c367e714356ca05ac2fd551c6dc0fff719271"}},{"ruleId":"D1","level":"warning","message":{"text":"PhysicalDeviceFeatures::to_wgpu (cyclomatic 40): PhysicalDeviceFeatures::to_wgpu has cyclomatic complexity 40 (threshold 15). To reduce it, name the conditions: bind each compound test to a well-named local or a small predicate function, so the body reads as a sequence of named decisions rather than a chain of operators."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":665}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c565546359d8f661d7eab021b0c6b74c87f025f8c1807cf534b04dadf33c15f"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::glsl::types::parse_type (cyclomatic 39): naga::front::glsl::types::parse_type has cyclomatic complexity 39 (threshold 15). Of this number, 30 points are the body\u0027s own statements and 9 belong to 2 function items inside it that branch. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/types.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9f932284a255dde454024619e3907ec56a2b817256970a5dbdb504424b5accf"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::back::pipeline_constants::adjust_stmt (cyclomatic 39): naga::back::pipeline_constants::adjust_stmt has cyclomatic complexity 39 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":721}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1329c5a544574e36b03192af0260b4dc809fa4ec6341a73f32e9fc626696005"}},{"ruleId":"D1","level":"warning","message":{"text":"PhysicalDeviceFeatures::from_extensions_and_requested_features (cyclomatic 39): PhysicalDeviceFeatures::from_extensions_and_requested_features has cyclomatic complexity 39 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7049d6837a6906fdb0d59db6c434e4b99833b1eb3cb564087857e114807caf5"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_enable_declarations (cyclomatic 38): Writer::write_enable_declarations has cyclomatic complexity 38 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"9994992ddd2d1b8d7db781ef4187c9fa9b91e598883e8d4c64d24a6b16fb453a"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_module_handles (cyclomatic 38): Validator::validate_module_handles has cyclomatic complexity 38 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"634877c77bc59615866fa060e25a6b0f0908158899eaff721ed59cf7736e4f79"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::common::wgsl::types::try_write_type_inner (cyclomatic 38): naga::common::wgsl::types::try_write_type_inner has cyclomatic complexity 38 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/wgsl/types.rs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bb9aaca217dd60ea4464d1630bba67c0e2164fdb18b9da6ef1b555aeca6fabb"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_pipeline_layout (cyclomatic 38): Device::create_pipeline_layout has cyclomatic complexity 38 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":970}}}],"partialFingerprints":{"codehealthFindingId/v1":"89709358f13dcf70540814aa07fd434269c39e4a087364cd38a0902167ff4dd8"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::function_call (cyclomatic 37): Frontend::function_call has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"e75e4ece1802ee8533322f310df7820f19df04b565e93e66789a90f3bd4c11c5"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::back::pipeline_constants::adjust_expr (cyclomatic 36): naga::back::pipeline_constants::adjust_expr has cyclomatic complexity 36 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ce21f3922575b101406cb4ce040ef23bac1de50b1f9243c99cc1ca9dc47962c"}},{"ruleId":"D1","level":"warning","message":{"text":"Resource::check_binding_use (cyclomatic 35): Resource::check_binding_use has cyclomatic complexity 35 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Interface::populate (cyclomatic 59) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed4126fe2a45d9083febde9a143979a3259ed115b44bf18b98aaff69faf9b29f"}},{"ruleId":"D1","level":"warning","message":{"text":"TypeContext::fmt (cyclomatic 34): TypeContext::fmt has cyclomatic complexity 34 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Writer::write_unpacking_function (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"d471a006b7d72deb623123316872df4468fe30ad587acd92e663ffaac520c595"}},{"ruleId":"D1","level":"warning","message":{"text":"ExpressionTracer::trace_expression (cyclomatic 34): ExpressionTracer::trace_expression has cyclomatic complexity 34 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/expressions.rs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"e40e3702eeffd6895c2c521f3e4183306067b21f693ae51c516fe724d40807ee"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_bind_group_layout_impl (cyclomatic 34): Device::create_bind_group_layout_impl has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2978}}}],"partialFingerprints":{"codehealthFindingId/v1":"47f041ea7b951926bc128b26f9d405beba0f8f961b595a79c61599eec7715692"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cyclomatic 34): CommandEncoder::begin_render_pass has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2992ab1c2a5ff86ce562f5a719d0d67ab6d8586e11c189683f04f3c928a1cd2"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapper_function (cyclomatic 33): Writer::write_wrapper_function has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mesh_shader.rs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c69f81c166cd1ca2a3e888d5d0f5487bb16b263a9ed5d202354c4ef9784ff6c"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write (cyclomatic 33): Writer::write has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":324}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f9a5781288679e3a9ef6a2d5008a60579fd31706e01c215dbab20b895bdee95"}},{"ruleId":"D1","level":"warning","message":{"text":"FunctionTracer::trace_block (cyclomatic 33): FunctionTracer::trace_block has cyclomatic complexity 33 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions. This shape REPEATS in the file: one other method here (FunctionMap::adjust_body) has the same decision points, in the same order, at the same nesting depths \u2014 so this is one pattern written twice rather than two separate problems. Splitting this body alone leaves the other exactly as it is. Where these are variations on one operation, the change that clears both is the shared one: lift the common shape into a single routine the variants call, parameterised by whatever genuinely differs between them, and keep in each method only the part that is not shared."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"49153720a92cb4a04ff8b560d3509f93708abd8a0f2b5c06fdce8448d5844686"}},{"ruleId":"D1","level":"warning","message":{"text":"FunctionMap::adjust_body (cyclomatic 33): FunctionMap::adjust_body has cyclomatic complexity 33 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions. This shape REPEATS in the file: one other method here (FunctionTracer::trace_block) has the same decision points, in the same order, at the same nesting depths \u2014 so this is one pattern written twice rather than two separate problems. Splitting this body alone leaves the other exactly as it is. Where these are variations on one operation, the change that clears both is the shared one: lift the common shape into a single routine the variants call, parameterised by whatever genuinely differs between them, and keep in each method only the part that is not shared."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"b030b0c3bb871ff26818252be25addebdc3508f557aad9c32f606cf279b2fc5f"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_block_handles (cyclomatic 33): Validator::validate_block_handles has cyclomatic complexity 33 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Validator::validate_expression_handles (cyclomatic 34) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"d07c5f7bf0b7ce4418e15fc3353f3f965b769e2a39bde0c4a36444b5dc30700b"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::back::glsl::conv::glsl_built_in (cyclomatic 33): naga::back::glsl::conv::glsl_built_in has cyclomatic complexity 33 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: naga::back::glsl::conv::glsl_storage_format (cyclomatic 41) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/conv.rs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"0690982c548d886f6a6f4f199e6081b601fca3a85aea466df648ef088fbbbcda"}},{"ruleId":"D1","level":"warning","message":{"text":"BlockContext::write_as_expression (cyclomatic 32): BlockContext::write_as_expression has cyclomatic complexity 32 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2293}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfe8152f22f4d92d4b95cd60f67b8a60febc8114a94fb04669f66de7b2cf9fc7"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::construct (cyclomatic 31): Lowerer::construct has cyclomatic complexity 31 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/construction.rs"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"39b8ec477abc4a84970e8371fbfce18626c7e5db5bdf7970e75bad3032ef97b4"}},{"ruleId":"D1","level":"warning","message":{"text":"Parser::statement (cyclomatic 31): Parser::statement has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1255}}}],"partialFingerprints":{"codehealthFindingId/v1":"44f2f048630875770b77396f4314e33d7a48ccb23e834d4a8eb170b46e860aef"}},{"ruleId":"D1","level":"warning","message":{"text":"naga_cli::bin::naga::run (cyclomatic 31): naga_cli::bin::naga::run has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga-cli/src/bin/naga.rs"},"region":{"startLine":484}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea4ef2782a9b425538b49d8ca252fb97d4df7f75bc9e6f83be50b2fc74af29a6"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::update_bind_group_state (cyclomatic 31): CommandEncoder::update_bind_group_state has cyclomatic complexity 31 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"c50f58a1729a61b67fd81c54e411ff17352dee11f9847f529a93494fda2f32ea"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapped_functions (cyclomatic 30): Writer::write_wrapped_functions has cyclomatic complexity 30 (threshold 15). Of this number, 25 points are the body\u0027s own statements and 5 belong to one function item inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1844}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e887a1dda5b79b10f80b465d3488d9b183804aad2f9836634928d5329018aa7"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_global (cyclomatic 30): Writer::write_global has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1024}}}],"partialFingerprints":{"codehealthFindingId/v1":"13890013485a323978a8cca8a08d5add83ded0021afe4242a4cf04e7a6c2c54b"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_entry_point_mesh_shader_info (cyclomatic 30): Writer::write_entry_point_mesh_shader_info has cyclomatic complexity 30 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcd7d75e1e4399a02e1a31ed245d6162fce9ab352d33bde728a3e394c4928098"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::wgsl::parse::number::parse_hex_float_parts (cyclomatic 30): naga::front::wgsl::parse::number::parse_hex_float_parts has cyclomatic complexity 30 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":436}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6bc1455670efb071a21441ab08dac073aa80cf00d2bdfa4cd5e3c5cc49f34b1"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::begin_render_pass_inner::fill_arc_desc (cyclomatic 30): CommandEncoder::begin_render_pass_inner::fill_arc_desc has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1886}}}],"partialFingerprints":{"codehealthFindingId/v1":"87d08b145520c846e3317ac60eb8b16136281d4108be5de23e96311095dbebfb"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::command::render::encode_render_pass (cyclomatic 29): wgpu_core::command::render::encode_render_pass has cyclomatic complexity 29 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":2264}}}],"partialFingerprints":{"codehealthFindingId/v1":"c50e27afb3f65f1d16a54a1f01e8f0db5749ce3e5a8aa3e103fbe1b9a5fb1642"}},{"ruleId":"D1","level":"warning","message":{"text":"Inner::create (cyclomatic 29): Inner::create has cyclomatic complexity 29 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":408}}}],"partialFingerprints":{"codehealthFindingId/v1":"edebd7b5106802aab66ed6765e9350eef2b0324ebf7e35e83271eb63b5fa0954"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::load_shader (cyclomatic 29): Device::load_shader has cyclomatic complexity 29 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: wgpu_hal::metal::device::convert_vertex_format_to_naga (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d0a9c1d489fc3abad0dc519e7e35579beee3c03b53faab01374602ff61f0639"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapped_binary_op (cyclomatic 28): Writer::write_wrapped_binary_op has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: Writer::write_unpacking_function (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5964}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b06cd86def4b9c59a3ccb1e87da01e561a942492d5cfa9ef05ca0462e015fd8"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::lookup_variable (cyclomatic 28): Frontend::lookup_variable has cyclomatic complexity 28 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa83d72479f87f039c15a1629000a93cc0ae1593a4f6b75e7ddec76cdaed2070"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::back::pipeline_constants::map_value_to_literal (cyclomatic 28): naga::back::pipeline_constants::map_value_to_literal has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":1035}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a310dc810797fb80e878a664cb937529aa5a79a6b617cf8a57f8b2e3c6dfeae"}},{"ruleId":"D1","level":"warning","message":{"text":"player::bin::play::main (cyclomatic 27): player::bin::play::main has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/bin/play.rs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"cadcd84e8470ad4c6cc668ced269f0aefdb1262fdb3443308b73ed7679c5b995"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_buffer_inner (cyclomatic 27): Device::create_buffer_inner has cyclomatic complexity 27 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1152}}}],"partialFingerprints":{"codehealthFindingId/v1":"daa9df25a1f0fadbf873af20d48cbc1ddfe685d986c3b75c528f6c5dea734a41"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cyclomatic 27): CommandEncoder::begin_render_pass has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":895}}}],"partialFingerprints":{"codehealthFindingId/v1":"87a6e5f83b994abab38e52a09438139fafaf107a17a6177322cf7111140326d6"}},{"ruleId":"D1","level":"warning","message":{"text":"PhysicalDeviceFeatures::add_to_device_create (cyclomatic 27): PhysicalDeviceFeatures::add_to_device_create has cyclomatic complexity 27 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"b00b6879908946cde58f568fc23f66a91060e4635c46e452d1d52d309394abcc"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_image_load (cyclomatic 26): Writer::write_image_load has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":4088}}}],"partialFingerprints":{"codehealthFindingId/v1":"54992918a45efa5b6afc7a4cf55d3d7c5cd3a9fe1489856d60f68479add347c5"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_attributes_to (cyclomatic 26): Writer::write_attributes_to has cyclomatic complexity 26 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":592}}}],"partialFingerprints":{"codehealthFindingId/v1":"569c39d15f3f011bb6bb109e04bbefc277b8f577fccb4a6b76399aea497dfa3e"}},{"ruleId":"D1","level":"warning","message":{"text":"Namer::reset (cyclomatic 26): Namer::reset has cyclomatic complexity 26 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/namer.rs"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fac32e31df9021b66604202db89b16f24972cab10f7f315dda2f92f8bfb0baa"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::front::wgsl::parse::number::parse (cyclomatic 26): naga::front::wgsl::parse::number::parse has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2b27ade01254070493c88f503cc3686fe8154826a60943c743a4efd9c421c26"}},{"ruleId":"D1","level":"warning","message":{"text":"RenderBundle::execute (cyclomatic 26): RenderBundle::execute has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"86b06fc406bcf7a556d75abbab1d9312006d8250dd09e3d87b6fff6188c8e97d"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_render_pipeline (cyclomatic 26): Device::create_render_pipeline has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1997}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8fe369ff0ac3c161cf8eb59279d04c4d0e79538277a9232393ee4a7a0295e5f"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_pipeline_layout (cyclomatic 26): Device::create_pipeline_layout has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: wgpu_hal::metal::device::convert_vertex_format_to_naga (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":903}}}],"partialFingerprints":{"codehealthFindingId/v1":"0379789bbfd6d357c2f2af7bcd56320a514954826527e84be4d3957ef8cf1f1f"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_render_pipeline (cyclomatic 26): Device::create_render_pipeline has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1982}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d095a8098b4f3ef6108b959d0ec3a4442b9d8e45457b2910412ad20e74ca0f0"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_function (cyclomatic 25): Writer::write_function has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1219}}}],"partialFingerprints":{"codehealthFindingId/v1":"21b8bec7ee6445cf871fb0260f59d7d4be7f37fcdf31bb6926887f80886e07ff"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_ray_query_stmt (cyclomatic 25): Writer::write_ray_query_stmt has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/ray.rs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c8ad5d9c5bdc5d302ef54d1519eb51465363d2fa69e1bf32708a0e9dcd42f4a"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::process_entry_point (cyclomatic 25): Frontend::process_entry_point has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/function.rs"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"26f7d7aecff652700696ee3a644f77b336c3d45b246b45174c853a08ad2173cd"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_atomic (cyclomatic 25): Validator::validate_atomic has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d6cbe30095621db15da8ca6692032d0c7a03c7cf85cdbf57854851ace093d06"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::back::pipeline_constants::process_overrides (cyclomatic 25): naga::back::pipeline_constants::process_overrides has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"d23c76fc3f40ef6795cb65d863d03d6e1e54cb16d08c9c6b513871711ccb2da3"}},{"ruleId":"D1","level":"warning","message":{"text":"Instance::init_with_callback (cyclomatic 25): Instance::init_with_callback has cyclomatic complexity 25 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"de45a82095687329c04fe3d67486497bdbb6288b74e7b807e2b0a8d2deeeabd1"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_global_variable (cyclomatic 24): Writer::write_global_variable has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3452}}}],"partialFingerprints":{"codehealthFindingId/v1":"6791c6b9b1f59f3dad19c0925ef33a3657a81069ff5ede01bd9037fa323477df"}},{"ruleId":"D1","level":"warning","message":{"text":"Queue::submit_inner (cyclomatic 24): Queue::submit_inner has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1511}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9d3a3e5a5c8293266c09199f0b98429081e5b9cf0ac366de4e3b8b069987d7c"}},{"ruleId":"D1","level":"warning","message":{"text":"Instance::expose_adapter (cyclomatic 24): Instance::expose_adapter has cyclomatic complexity 24 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2299}}}],"partialFingerprints":{"codehealthFindingId/v1":"be97b439ee265e9a905bade478075a6ca9b7c4f66782e1528efb5ddd4243dba3"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_varying (cyclomatic 23): Writer::write_varying has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1052}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5b6c904519742585b1e81fbb9c35d9065f8679f1604e42dd1b5af81ec72e6b3"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_switch (cyclomatic 23): Writer::write_switch has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2033}}}],"partialFingerprints":{"codehealthFindingId/v1":"143e140072de4e533c87cf97cabfd606021aedd057443e7f91f6e366e1c6ce6a"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_std140_compat_type_declaration (cyclomatic 23): Writer::write_std140_compat_type_declaration has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2345}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fd4bb8956e3f0f2721ffb88e198230beeefbbb56c5fde865a375259456969f0"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::parse_global_variable (cyclomatic 23): Frontend::parse_global_variable has cyclomatic complexity 23 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Frontend::next_decoration (cyclomatic 25) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2951}}}],"partialFingerprints":{"codehealthFindingId/v1":"11e57984a5e94792b088177b6fa7b31ad1b8af7715786040e786e0bca77f5221"}},{"ruleId":"D1","level":"warning","message":{"text":"ConstantEvaluator::unary_op (cyclomatic 23): ConstantEvaluator::unary_op has cyclomatic complexity 23 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: ConstantEvaluator::try_eval_and_append_impl (cyclomatic 30) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2800}}}],"partialFingerprints":{"codehealthFindingId/v1":"914104b34397204856f778a53ca1d1f384fa0b165e54589d0e2cd0c32ebbbdd5"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::encode_commands (cyclomatic 23): CommandEncoder::encode_commands has cyclomatic complexity 23 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":1085}}}],"partialFingerprints":{"codehealthFindingId/v1":"849790637d4ae8cffa51fb5f39fcbf12f97c42d2e45782f90fa6249af2d198e5"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::texture_use_parameters (cyclomatic 23): Device::texture_use_parameters has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4034}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0d27fc4b95f4fcd3f86084ebccf1d4c15408535481bf0be9c07610dcf1aa27d"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_bind_group (cyclomatic 23): Device::create_bind_group has cyclomatic complexity 23 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1591}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf49434ec60c5235033187359b32ecd1aaf051634ce70d73f10aadb0c52e4fc9"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cyclomatic 23): CommandEncoder::begin_render_pass has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1026}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fe0375230f281414f7c1a777dc1010feba92fccaed97a227500eb3d775e2ca7"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_bind_group (cyclomatic 23): Device::create_bind_group has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: wgpu_hal::metal::device::convert_vertex_format_to_naga (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1090}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b90f1b8c06ad74eddbef81fe6f204327e71ea94167862c87f574f70d2e7b966"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_hal::vulkan::instance::debug_utils_messenger_callback (cyclomatic 23): wgpu_hal::vulkan::instance::debug_utils_messenger_callback has cyclomatic complexity 23 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"2efb38f283723823a29a329dcc01732b8f99a383a061cfba16143cc6c1c7b41d"}},{"ruleId":"D1","level":"warning","message":{"text":"lock_analyzer::main (cyclomatic 22): lock_analyzer::main has cyclomatic complexity 22 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"lock-analyzer/src/main.rs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a17519db6aee5293bb03dbf6c4365d8f28c2a69b8b8a30a99514a34d0d205e1"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapped_binary_ops (cyclomatic 22): Writer::write_wrapped_binary_ops has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1593}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff6ebd0f60f2f1dff9472d949957e2c87ab5faf07293f3d4096d139bf0eb790b"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_possibly_const_expression (cyclomatic 22): Writer::write_possibly_const_expression has cyclomatic complexity 22 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1408}}}],"partialFingerprints":{"codehealthFindingId/v1":"48fc8a6ed4e88c2f198095b1df893987a878122ae7546356e2f4db17b2b75210"}},{"ruleId":"D1","level":"warning","message":{"text":"ParsingContext::parse_type_qualifiers (cyclomatic 22): ParsingContext::parse_type_qualifiers has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: naga::front::glsl::parser::types::map_image_format (cyclomatic 41) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/types.rs"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"46da7dc467c54e9c97a31f33958f9748fc112165d2b20deec5ef07e3534b5e6e"}},{"ruleId":"D1","level":"warning","message":{"text":"Module::analyze_mesh_shader_info (cyclomatic 22): Module::analyze_mesh_shader_info has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: MathFunction::argument_count (cyclomatic 79) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/mod.rs"},"region":{"startLine":757}}}],"partialFingerprints":{"codehealthFindingId/v1":"1aab20cc658814d85a943b2c71cedd1adbe4837797aa06f8687f21b50fffdb32"}},{"ruleId":"D1","level":"warning","message":{"text":"Resource::derive_binding_type (cyclomatic 22): Resource::derive_binding_type has cyclomatic complexity 22 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Interface::populate (cyclomatic 59) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":882}}}],"partialFingerprints":{"codehealthFindingId/v1":"94d8fd27147595e2549dca607f6956b087cd7414c72175b53ab6875308688255"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::update_root_elements (cyclomatic 22): CommandEncoder::update_root_elements has cyclomatic complexity 22 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"e185a9eae26d9dd172e5c758651eb56d9d5d703879a473362492bb99f991fa2a"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::put_literal (cyclomatic 21): Writer::put_literal has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: Writer::write_unpacking_function (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1932}}}],"partialFingerprints":{"codehealthFindingId/v1":"72c189c4e4f15d7642e8477787de03154f6d5ce59987977d9edaafc44f3994cc"}},{"ruleId":"D1","level":"warning","message":{"text":"Instance::request_adapter (cyclomatic 21): Instance::request_adapter has cyclomatic complexity 21 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 6 belong to one function item inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"7363863df5f527f46f68ca5f73a13e924c5686c8a0c20b71a1a04a2f5a554231"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::track::texture::update (cyclomatic 21): wgpu_core::track::texture::update has cyclomatic complexity 21 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1460}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc858abb896b5f26b373828d5c22c5c0489a9cc9bd4e704c59047883f2dcd20a"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::set_render_pipeline (cyclomatic 21): CommandEncoder::set_render_pipeline has cyclomatic complexity 21 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":872}}}],"partialFingerprints":{"codehealthFindingId/v1":"984ccf8da7654d274bca9443f39c20dc28521876fb9d3f038f414ef585aec502"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::update_expressions_to_bake (cyclomatic 20): Writer::update_expressions_to_bake has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":846}}}],"partialFingerprints":{"codehealthFindingId/v1":"037c05a1b291a110599022d5847890fb557b038257087209cbe6aa13011380fd"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_possibly_const_expr (cyclomatic 20): Writer::write_possibly_const_expr has cyclomatic complexity 20 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2337}}}],"partialFingerprints":{"codehealthFindingId/v1":"4251bdd52e12102e09340e3c184ae635d962617cf0269b4f94dbb89def72a52d"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_type_defs (cyclomatic 20): Writer::write_type_defs has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: Writer::write_unpacking_function (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":4703}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ab5fd0207e90ce3b21aba649f5e2518003ba6066b41113fb261791fd1b535b4"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapped_binary_op (cyclomatic 20): Writer::write_wrapped_binary_op has cyclomatic complexity 20 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":662}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac9f277f4a26c957ff1e1a6d9291de6d619c0996e0446c962a3952b1bae52a33"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write (cyclomatic 20): Writer::write has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe349f0cfde3f8cdf71a7dcc69b48731b8bfa2c92abc939f6b8d135699b97893"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::handle_directive (cyclomatic 20): Frontend::handle_directive has cyclomatic complexity 20 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca3b86381949d47b4b32284c0abbf141ee64700dfe16f673d32c1c713927f2ee"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::add_global_var (cyclomatic 20): Frontend::add_global_var has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"e30eac5cc337f2e0a1ebec9404c23027ae55de926872295f5adadf4eec6ac942"}},{"ruleId":"D1","level":"warning","message":{"text":"ParsingContext::parse_declaration (cyclomatic 20): ParsingContext::parse_declaration has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bb3a09a561bf00634bcb58807f9fd6ecad717123c4c025b8b2805abc5986309"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::lower (cyclomatic 20): Lowerer::lower has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1273}}}],"partialFingerprints":{"codehealthFindingId/v1":"bec68601f56cd0178b7d4d483a2e1c08ebb0c60e3043cd58d7cffc03f2533633"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::function (cyclomatic 20): Lowerer::function has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1560}}}],"partialFingerprints":{"codehealthFindingId/v1":"042adefd783ecff799c012e584e13c0b3dbf94576e49e246a66fd1180c3209a8"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_bind_group_inner (cyclomatic 20): Device::create_bind_group_inner has cyclomatic complexity 20 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":3731}}}],"partialFingerprints":{"codehealthFindingId/v1":"685655687771cfd6d95869e9fcd21e37202c69cbbaf1ca4ab52b14ef80cff9bd"}},{"ruleId":"D1","level":"warning","message":{"text":"Buffer::try_map_async (cyclomatic 20): Buffer::try_map_async has cyclomatic complexity 20 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"95addba01194791961a6809bda6e26bd857d254e9307a4080e2650b2fc131060"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::command::ray_tracing::build_acceleration_structures (cyclomatic 20): wgpu_core::command::ray_tracing::build_acceleration_structures has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"98ca3bc55be8ace8f3897074de56e1fa9c1ce6eab5484431d9401ba87d90d0a7"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_buffer (cyclomatic 20): Device::create_buffer has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":684}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1d6a23aeb36399bcf870008411f47792ec215fbd64874b227f53457f85f7286"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_texture (cyclomatic 20): Device::create_texture has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":943}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8de15cae805745dc932e75ee6fb48e5c38ddacc24233419a6c34a3e3b94e792"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_storage_store (cyclomatic 19): Writer::write_storage_store has cyclomatic complexity 19 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"756183fcd9c2db1e3ce6aa2d0b95581a46615aa57c8f146d70627db04309f601"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::update_expressions_to_bake (cyclomatic 19): Writer::update_expressions_to_bake has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1f49fff4fe7d9df84c8cc47ea8ce396538dc4ac9aa0b75043786c0f7dfa08cd"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::parse_function (cyclomatic 19): Frontend::parse_function has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/function.rs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"881026de2fa01be3e64c296bb82c69524b717f3d6599d67f95f41d6d6343266a"}},{"ruleId":"D1","level":"warning","message":{"text":"Lowerer::finalize_type (cyclomatic 19): Lowerer::finalize_type has cyclomatic complexity 19 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":2818}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e8c9a785353f5612e2f40afeccecaf4985fe161dcfe01636d678d9f0da45036"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::validate_function (cyclomatic 19): Validator::validate_function has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":1875}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fad1fe01f19f14d89b550b2ac739534a065f94dd5e19d293e4e60c885f13e01"}},{"ruleId":"D1","level":"warning","message":{"text":"CoreDevice::create_bind_group (cyclomatic 19): CoreDevice::create_bind_group has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1023}}}],"partialFingerprints":{"codehealthFindingId/v1":"afd8d3095e2165fe4d7363b68dc24ba40a547bf78e40871ca7727b4faeaac9c5"}},{"ruleId":"D1","level":"warning","message":{"text":"Surface::configure (cyclomatic 19): Surface::configure has cyclomatic complexity 19 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/surface.rs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"3409a249202b05ac120d794ee2adc48d6e6ac46d316ce2ed26a1e6ada3d4d91c"}},{"ruleId":"D1","level":"warning","message":{"text":"BlockContext::write_access_chain (cyclomatic 18): BlockContext::write_access_chain has cyclomatic complexity 18 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2571}}}],"partialFingerprints":{"codehealthFindingId/v1":"4de21ad03001e03ebef8aa61c35816567938b72f865e45d9e95dd14d9d0ef70d"}},{"ruleId":"D1","level":"warning","message":{"text":"BlockContext::write_image_sample (cyclomatic 18): BlockContext::write_image_sample has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":803}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ddf6092838796a168ee9f52c70a958bf55a35ebd14170134da41e5e181463d4"}},{"ruleId":"D1","level":"warning","message":{"text":"BlockContext::write_image_query (cyclomatic 18): BlockContext::write_image_query has cyclomatic complexity 18 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f8ef525eb2c5c868edc0fdbdd638b0e52aa85b6a5130b41473f3a5a2a602ca1"}},{"ruleId":"D1","level":"warning","message":{"text":"Parser::equality_expression (cyclomatic 18): Parser::equality_expression has cyclomatic complexity 18 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Parser::primary_expression (cyclomatic 24) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":701}}}],"partialFingerprints":{"codehealthFindingId/v1":"e63063476d9078f49f79bb4483914af7d2639e678e473f9589580631366dd409"}},{"ruleId":"D1","level":"warning","message":{"text":"Validator::check_width (cyclomatic 18): Validator::check_width has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea84fc2fb591183768b792ca768d5e4a15cda98a72abb605f7de0971cb56afe9"}},{"ruleId":"D1","level":"warning","message":{"text":"naga::valid::compose::validate_compose (cyclomatic 18): naga::valid::compose::validate_compose has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/compose.rs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"1658fb1f96bbd11f38d3879b97fb12c896a954d98fe5cd910f299630dfd63cd4"}},{"ruleId":"D1","level":"warning","message":{"text":"Queue::copy_external_image_to_texture (cyclomatic 18): Queue::copy_external_image_to_texture has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1233}}}],"partialFingerprints":{"codehealthFindingId/v1":"a837c317c8a72aca121b38a3db05dee96ca6f963b85258550e67ab25a0aa56ba"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::maintain (cyclomatic 18): Device::maintain has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":938}}}],"partialFingerprints":{"codehealthFindingId/v1":"7add3d0668f8235e74175a0a6ebf62b62439622884e61b84e3d31490d88cdc32"}},{"ruleId":"D1","level":"warning","message":{"text":"Interface::new (cyclomatic 18): Interface::new has cyclomatic complexity 18 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions. This is NOT this file\u0027s highest cyclomatic complexity: Interface::populate (cyclomatic 59) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1362}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd35297a68036b055e78c759baaabe4626518b6fbe4eb76b17470e1bed01e096"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::track::texture::barrier (cyclomatic 18): wgpu_core::track::texture::barrier has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1341}}}],"partialFingerprints":{"codehealthFindingId/v1":"311774b9bb7136454c48ef04de503c73727e71437f361338d9bce853dcca09b1"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::push_barrier (cyclomatic 18): CommandEncoder::push_barrier has cyclomatic complexity 18 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1f8a6ac5c5951527a17372422a942fa93300178d8017248bc8dda8ea08f296a"}},{"ruleId":"D1","level":"warning","message":{"text":"Surface::configure (cyclomatic 18): Surface::configure has cyclomatic complexity 18 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1243}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a59c09bcfb8218b8802b5dd6ef36e1c5ba1cb94c86580609a955fe7c10a18f0"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_program (cyclomatic 18): Device::create_program has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":530}}}],"partialFingerprints":{"codehealthFindingId/v1":"44df03f3f37352e0f30e366543a60ccac2dcdf02c6803c80e98e9432f8d79413"}},{"ruleId":"D1","level":"warning","message":{"text":"Device::create_bind_group_layout (cyclomatic 18): Device::create_bind_group_layout has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1463}}}],"partialFingerprints":{"codehealthFindingId/v1":"125ad53d2ef464fe373b90a1d3c29adc4e1bb290fa01a78407aa46af4c8d5202"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandEncoder::set_render_pipeline (cyclomatic 18): CommandEncoder::set_render_pipeline has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1290}}}],"partialFingerprints":{"codehealthFindingId/v1":"df65706ecd87288796a6422dee166e1f82688fea579202038b4652f389d12391"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapped_image_query_function (cyclomatic 17): Writer::write_wrapped_image_query_function has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":594}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7706fe2129d7586653a3ba33e56277758d379e19206ef0d15e5cc0c8b55063c"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_wrapped_constructor_function (cyclomatic 17): Writer::write_wrapped_constructor_function has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":757}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f6a2b7f994b99be3019b361b196df5193ed3dd304f3681f0834d2b2460f83d7"}},{"ruleId":"D1","level":"warning","message":{"text":"Options::resolve_local_binding (cyclomatic 17): Options::resolve_local_binding has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"10b6b4530ec8bc1e1a220c64658f6560df193bb290328c16c6c2c9ec9f22ce26"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::write_entry_point (cyclomatic 17): Writer::write_entry_point has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1794}}}],"partialFingerprints":{"codehealthFindingId/v1":"52604c27866087de310120793dd4af96d0a7a2c5242cd6dc60af24c37f3f58c3"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::request_type_capabilities (cyclomatic 17): Writer::request_type_capabilities has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2003}}}],"partialFingerprints":{"codehealthFindingId/v1":"d64f85f3c84588ea97c7d9b8c475b235119c9e03766b2555502d8edb15c38de8"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::field_selection (cyclomatic 17): Frontend::field_selection has cyclomatic complexity 17 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa62975d46b02432c7334ddf6922efc07783ddfa3cbb442f6e3ad41649984177"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::patch_statements (cyclomatic 17): Frontend::patch_statements has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: Frontend::next_decoration (cyclomatic 25) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1584}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b4d2a0b61c914bfa7108892609de0aff70198cc7eb4ef9966279a1f3f74bff6"}},{"ruleId":"D1","level":"warning","message":{"text":"WebCommandEncoder::begin_render_pass (cyclomatic 17): WebCommandEncoder::begin_render_pass has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: wgpu::backend::webgpu::map_texture_format (cyclomatic 97) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":3458}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf733cf1c28ccd2e47a1eeb7ce3a99b39bc0b9bf00193927392314703ccea220"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::command::compute::encode_compute_pass (cyclomatic 17): wgpu_core::command::compute::encode_compute_pass has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":622}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ae4047193a01d523d8bced6b917b5674ce1f4afe809e90a06f960be3575fb24"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::device::surface_config::validate_surface_configuration (cyclomatic 17): wgpu_core::device::surface_config::validate_surface_configuration has cyclomatic complexity 17 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/surface_config.rs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"08d6002eb60836a0507d7eca04fb0025167f11cceda0adb7041e989660eb3276"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::track::texture::merge (cyclomatic 17): wgpu_core::track::texture::merge has cyclomatic complexity 17 (threshold 15). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1207}}}],"partialFingerprints":{"codehealthFindingId/v1":"25b683ed594dbadbbfb721a6ed2a7bde428e15e18dd3f74866ed32beb9d5d4eb"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::fill_access_chain (cyclomatic 16): Writer::fill_access_chain has cyclomatic complexity 16 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"106649aa4f99faf2a665f80a2c30e073071fefbd789e64528d4a510589f12feb"}},{"ruleId":"D1","level":"warning","message":{"text":"Writer::put_possibly_const_expression (cyclomatic 16): Writer::put_possibly_const_expression has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top. This is NOT this file\u0027s highest cyclomatic complexity: Writer::write_unpacking_function (cyclomatic 43) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2012}}}],"partialFingerprints":{"codehealthFindingId/v1":"fffb295f83b64a89f43edf59314f67439dd3658125fdb3a95798e3939fdff490"}},{"ruleId":"D1","level":"warning","message":{"text":"Frontend::constructor_single (cyclomatic 16): Frontend::constructor_single has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"0beb5e12a245d48917dc25aa0ff85e530e3e075bcb8db3a873b04c27655845e6"}},{"ruleId":"D1","level":"warning","message":{"text":"LiteralVector::from_literal_vec (cyclomatic 16): LiteralVector::from_literal_vec has cyclomatic complexity 16 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: ConstantEvaluator::try_eval_and_append_impl (cyclomatic 30) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"804308f96b173dcc06ac41693bb9f76d4a643ca3030b1beeba98e95a19c4077a"}},{"ruleId":"D1","level":"warning","message":{"text":"wgpu_core::command::transfer::copy_texture_to_texture (cyclomatic 16): wgpu_core::command::transfer::copy_texture_to_texture has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/transfer.rs"},"region":{"startLine":1453}}}],"partialFingerprints":{"codehealthFindingId/v1":"424d77242be53511117011cade03df952bb07503c958eebc6b8f8f430b0546cf"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_functions (cognitive 543): Writer::write_functions has cognitive complexity 543 (threshold 15). Drivers by points: if/else 96 (316 pts), match/switch 33 (125 pts), loops 29 (86 pts), boolean chains 16 (nesting depth added 369). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6879}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a8c29b6c92030b7beb9ecd23caf62d0fda0dd8eb3c058713ac1c01c7d5104e7"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_expr (cognitive 391): Writer::write_expr has cognitive complexity 391 (threshold 15). Drivers by points: if/else 102 (235 pts), match/switch 49 (130 pts), boolean chains 15, loops 4 (11 pts) (nesting depth added 221). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2430}}}],"partialFingerprints":{"codehealthFindingId/v1":"464137db9a47467900914407279cf6a49a82bfd627f9cf58fcc3d5367146689e"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::next_block (cognitive 350): Frontend::next_block has cognitive complexity 350 (threshold 15). Drivers by points: if/else 72 (168 pts), match/switch 36 (123 pts), loops 18 (56 pts), boolean chains 3 (nesting depth added 221). Of this number, 349 points are the body\u0027s own statements and 1 belongs to one function item inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ae67ea55da31f5d777d5478a2de0f67715e56b04ff62ae75b22f275210afbe6"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_block_impl (cognitive 338): Validator::validate_block_impl has cognitive complexity 338 (threshold 15). Drivers by points: if/else 55 (183 pts), match/switch 37 (134 pts), loops 7 (19 pts), boolean chains 2 (nesting depth added 237). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":789}}}],"partialFingerprints":{"codehealthFindingId/v1":"306f1d1fc56f2a5a1ea06e2ed57ee216f0a688444e137f48710a08f430d312d1"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_expression (cognitive 295): Validator::validate_expression has cognitive complexity 295 (threshold 15). Drivers by points: match/switch 68 (170 pts), if/else 51 (110 pts), boolean chains 9, loops 3 (6 pts) (nesting depth added 164). Of this number, 293 points are the body\u0027s own statements and 2 belong to one function item inside it that branches. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":382}}}],"partialFingerprints":{"codehealthFindingId/v1":"660e5200e2054ea14a87918813da4cd508cc5fd066e59a829b2c8eb0537831b2"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_render_pipeline_or_error_inner (cognitive 233): Device::create_render_pipeline_or_error_inner has cognitive complexity 233 (threshold 15). Drivers by points: if/else 85 (177 pts), loops 10 (25 pts), boolean chains 18, match/switch 11 (13 pts) (nesting depth added 109). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4655}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a53bf63ccdd1dc27943129c89ffb570a79e3cc32894a42dcd0f4755ad332576"}},{"ruleId":"D2","level":"warning","message":{"text":"Queue::process (cognitive 213): Queue::process has cognitive complexity 213 (threshold 15). Drivers by points: if/else 85 (155 pts), match/switch 14 (27 pts), loops 8 (22 pts), boolean chains 9 (nesting depth added 97). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"6144c5fedfed612b06b1d35859a15e3e2d959175ac2e67e7e7f7debece819258"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_stmt (cognitive 201): Writer::write_stmt has cognitive complexity 201 (threshold 15). Drivers by points: if/else 47 (117 pts), match/switch 23 (62 pts), loops 8 (20 pts), boolean chains 2 (nesting depth added 121). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2198}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3f7d64db65a880058420f0b9604c0103f64b8caaab4505cb1872dc5569ff274"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_expr (cognitive 196): Writer::write_expr has cognitive complexity 196 (threshold 15). Drivers by points: if/else 51 (113 pts), match/switch 28 (74 pts), boolean chains 7, loops 1 (2 pts) (nesting depth added 109). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3729}}}],"partialFingerprints":{"codehealthFindingId/v1":"15cc1077be39a6c24d5af73ced80a21d787ce9a387bbd2b40b80afb9891a6d24"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::cache_expression_value (cognitive 183): BlockContext::cache_expression_value has cognitive complexity 183 (threshold 15). Drivers by points: match/switch 49 (122 pts), if/else 29 (58 pts), loops 1 (2 pts), boolean chains 1 (nesting depth added 103). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8071d63972a0cdae892e3a2dbf9f4a99a36dbddbe99fc97f2277678ef4e103d"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_stmt (cognitive 166): Writer::write_stmt has cognitive complexity 166 (threshold 15). Drivers by points: if/else 36 (96 pts), match/switch 13 (34 pts), loops 10 (30 pts), boolean chains 6 (nesting depth added 101). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1609}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d527435a025492be789c1ced18173c315341f8200de3c58c386cd48ad4e2b21"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::put_expression (cognitive 163): Writer::put_expression has cognitive complexity 163 (threshold 15). Drivers by points: if/else 40 (79 pts), match/switch 28 (71 pts), boolean chains 11, loops 1 (2 pts) (nesting depth added 83). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2134}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e51f4415c8a38f50647bcc46b4d13171cbd44c244c9029a44a814db6b8d574a"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::put_block (cognitive 158): Writer::put_block has cognitive complexity 158 (threshold 15). Drivers by points: if/else 37 (108 pts), match/switch 8 (26 pts), loops 8 (20 pts), boolean chains 4 (nesting depth added 101). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3923}}}],"partialFingerprints":{"codehealthFindingId/v1":"dadb35cb1492d11490b8df994c1f1b139bd1d26fc98ff5a74fc3371f4f0e1781"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::command::ray_tracing::iter_blas (cognitive 158): wgpu_core::command::ray_tracing::iter_blas has cognitive complexity 158 (threshold 15). Drivers by points: if/else 36 (131 pts), match/switch 4 (14 pts), loops 3 (7 pts), boolean chains 6 (nesting depth added 109). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":588}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f9b83c056bcc78ddff385ea5d2beaea32c30d143e721d84cbdaf0328a774d07"}},{"ruleId":"D2","level":"warning","message":{"text":"CapabilitiesQuery::new (cognitive 158): CapabilitiesQuery::new has cognitive complexity 158 (threshold 15). Drivers by points: if/else 79 (81 pts), boolean chains 75, loops 1 (2 pts) (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":675}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8806b6cb7441ccf1cbe91776236b1bf7ac0a75d28d1a3fbccb64fba4a421bcf"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_type (cognitive 157): Validator::validate_type has cognitive complexity 157 (threshold 15). Drivers by points: if/else 48 (119 pts), match/switch 12 (28 pts), boolean chains 8, loops 1 (2 pts) (nesting depth added 88). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d87fe5a9ea2a7c7cb12dea045beb92cde9fb97c6c6614ebdc0e9825d13ade80"}},{"ruleId":"D2","level":"warning","message":{"text":"Interface::check_stage (cognitive 151): Interface::check_stage has cognitive complexity 151 (threshold 15). Drivers by points: if/else 44 (92 pts), match/switch 15 (36 pts), loops 9 (16 pts), boolean chains 7 (nesting depth added 76). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1563}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a2895b40db00345afd7c2df8d207a35a77f520e3332d61b5dcbfc670299a7e7"}},{"ruleId":"D2","level":"warning","message":{"text":"ConstantEvaluator::binary_op (cognitive 147): ConstantEvaluator::binary_op has cognitive complexity 147 (threshold 15). Drivers by points: if/else 27 (85 pts), match/switch 16 (52 pts), boolean chains 6, loops 2 (4 pts) (nesting depth added 96). Of this number, 144 points are the body\u0027s own statements and 3 belong to one function item inside it that branches. The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2858}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed81762f5bb45fca401da5f31884cd2a4964478b0fdf1365ab74ddf6b75e2fee"}},{"ruleId":"D2","level":"warning","message":{"text":"VaryingContext::validate_impl (cognitive 140): VaryingContext::validate_impl has cognitive complexity 140 (threshold 15). Drivers by points: match/switch 29 (58 pts), if/else 26 (53 pts), boolean chains 29 (nesting depth added 56). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"01990d2d8c440ffd92a96d5caaf50d496bd538f18e44e739bd8f8503ebbc6ed7"}},{"ruleId":"D2","level":"warning","message":{"text":"Context::lower_inner (cognitive 139): Context::lower_inner has cognitive complexity 139 (threshold 15). Drivers by points: if/else 29 (66 pts), match/switch 21 (53 pts), loops 5 (18 pts), boolean chains 2 (nesting depth added 82). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"cadb273ab217dde48fdd31bf8008d0bf57bbc4411a0944a71b9aff69995614ef"}},{"ruleId":"D2","level":"warning","message":{"text":"Adapter::expose (cognitive 137): Adapter::expose has cognitive complexity 137 (threshold 15). Drivers by points: if/else 78 (91 pts), boolean chains 45, match/switch 1 (nesting depth added 13). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"618fc5074ecf632517139044188d0c2e47a7b869b155b318bcab6c5e2ed7783a"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::write_block (cognitive 135): BlockContext::write_block has cognitive complexity 135 (threshold 15). Drivers by points: match/switch 22 (59 pts), if/else 20 (57 pts), loops 6 (16 pts), boolean chains 3 (nesting depth added 84). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":3533}}}],"partialFingerprints":{"codehealthFindingId/v1":"9db43d22709b64a8f56ee8f82087478790ac75bef6f070a2a268ca9fa4dd3e23"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_standard_builtins (cognitive 135): naga::front::glsl::builtins::inject_standard_builtins has cognitive complexity 135 (threshold 15). Drivers by points: match/switch 43 (97 pts), loops 13 (26 pts), if/else 8 (12 pts) (nesting depth added 71). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"b32764a4c4dc2ff5633c8035eae82f41353ee8808b9494881342f4ed826e7513"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::collect_required_features (cognitive 129): Writer::collect_required_features has cognitive complexity 129 (threshold 15). Drivers by points: if/else 22 (79 pts), match/switch 8 (23 pts), boolean chains 14, loops 8 (13 pts) (nesting depth added 77). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"0407a64ac445f4b584f468a380297692210eccdb97a8a4ca62a7abe03e492ddb"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_function (cognitive 122): Writer::write_function has cognitive complexity 122 (threshold 15). Drivers by points: if/else 47 (92 pts), loops 8 (14 pts), match/switch 6 (12 pts), boolean chains 4 (nesting depth added 57). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1260}}}],"partialFingerprints":{"codehealthFindingId/v1":"885404ff3f114a680d4e6cd088f25bfef5205591b1e4ce1145b5585136460f35"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_stmt (cognitive 120): Writer::write_stmt has cognitive complexity 120 (threshold 15). Drivers by points: if/else 33 (75 pts), loops 10 (23 pts), match/switch 8 (19 pts), boolean chains 3 (nesting depth added 66). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"3176572ca8940ea2c07e3e6846db6ce281f2c37b11904a230d6e966b18697bf9"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_entry_point (cognitive 119): Validator::validate_entry_point has cognitive complexity 119 (threshold 15). Drivers by points: if/else 43 (96 pts), match/switch 10 (19 pts), boolean chains 2, loops 2 (nesting depth added 62). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":1257}}}],"partialFingerprints":{"codehealthFindingId/v1":"110c6eb721d2fa190867534b7e818460bbe0d1cd8bd37e3bf93192adb06ec6e2"}},{"ruleId":"D2","level":"warning","message":{"text":"RenderPassInfo::start (cognitive 107): RenderPassInfo::start has cognitive complexity 107 (threshold 15). Drivers by points: if/else 56 (92 pts), boolean chains 5, loops 3 (5 pts), match/switch 2 (5 pts) (nesting depth added 41). Of this number, 99 points are the body\u0027s own statements and 8 belong to one function item inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1218}}}],"partialFingerprints":{"codehealthFindingId/v1":"57a41c76117f763d423db04d82f08268bd5f4cb8017f4d7b1c92ccffac1a01b6"}},{"ruleId":"D2","level":"warning","message":{"text":"Adapter::expose (cognitive 106): Adapter::expose has cognitive complexity 106 (threshold 15). Drivers by points: if/else 59 (68 pts), boolean chains 20, match/switch 11 (17 pts), loops 1 (nesting depth added 15). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"729ec44c567bf75ecf39c11ca0098447ca831824ac6be6e77396874c39314985"}},{"ruleId":"D2","level":"warning","message":{"text":"InstanceShared::inspect (cognitive 99): InstanceShared::inspect has cognitive complexity 99 (threshold 15). Drivers by points: if/else 43 (83 pts), boolean chains 16 (nesting depth added 40). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1922}}}],"partialFingerprints":{"codehealthFindingId/v1":"69ba60d7f5f659fdf9e666849b3918bf7e84f7038a4e22a68bff70c6c39acd2e"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write (cognitive 95): Writer::write has cognitive complexity 95 (threshold 15). Drivers by points: if/else 31 (63 pts), match/switch 6 (19 pts), boolean chains 7, loops 6 (nesting depth added 45). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff08a6ace0c22c916c485e88ecc041803ace6633830d420d4808b22e8808b7aa"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::call_builtin (cognitive 90): Lowerer::call_builtin has cognitive complexity 90 (threshold 15). Drivers by points: if/else 26 (51 pts), match/switch 10 (32 pts), loops 2 (6 pts), boolean chains 1 (nesting depth added 51). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3094}}}],"partialFingerprints":{"codehealthFindingId/v1":"d56ea94a85b3a536b14a41220f87835137c9f842052d305a56a67d3d1e04b8e5"}},{"ruleId":"D2","level":"warning","message":{"text":"ResolveContext::resolve (cognitive 89): ResolveContext::resolve has cognitive complexity 89 (threshold 15). Drivers by points: match/switch 22 (54 pts), if/else 14 (35 pts) (nesting depth added 53). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/typifier.rs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"479708fd0a7b519b0909ae374044522383135eefcb8a04920d48861cd2eb94c6"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_builtin (cognitive 87): naga::front::glsl::builtins::inject_builtin has cognitive complexity 87 (threshold 15). Drivers by points: if/else 29 (57 pts), boolean chains 16, match/switch 6 (12 pts), loops 1 (2 pts) (nesting depth added 35). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"74f4075d4324dd1c5f371cab788bd058c0b68ab08e43632af97e8cd1842c306a"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::statement (cognitive 86): Lowerer::statement has cognitive complexity 86 (threshold 15). Drivers by points: match/switch 20 (46 pts), if/else 16 (37 pts), loops 1 (2 pts), boolean chains 1 (nesting depth added 48). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1794}}}],"partialFingerprints":{"codehealthFindingId/v1":"55dc1980b3e0747ac117c37637d5d5bd61a4ad27716f181b9be0f0e5c3044b8c"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_render_pipeline (cognitive 83): Device::create_render_pipeline has cognitive complexity 83 (threshold 15). Drivers by points: if/else 26 (49 pts), match/switch 16 (19 pts), loops 5 (13 pts), boolean chains 2 (nesting depth added 34). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1425}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b072f405214ff82f58969d5f6ec111b528c675715f28871de0c2b1318a54025"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_function (cognitive 80): Writer::write_function has cognitive complexity 80 (threshold 15). Drivers by points: if/else 32 (59 pts), loops 5 (9 pts), match/switch 5 (8 pts), boolean chains 4 (nesting depth added 34). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1629}}}],"partialFingerprints":{"codehealthFindingId/v1":"00d9de244546aaba157998d6dbdb994511f814dcf00adefc907a2aab960822d8"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_common_builtin (cognitive 80): naga::front::glsl::builtins::inject_common_builtin has cognitive complexity 80 (threshold 15). Drivers by points: match/switch 23 (55 pts), loops 10 (21 pts), if/else 1 (3 pts), boolean chains 1 (nesting depth added 45). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1220}}}],"partialFingerprints":{"codehealthFindingId/v1":"547cb7e99d793c61bbc9b754200f471b1249fff140f3209c3728c7d0ef49c853"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::compact::compact (cognitive 78): naga::compact::compact has cognitive complexity 78 (threshold 15). Drivers by points: if/else 35 (60 pts), loops 10 (15 pts), boolean chains 3 (nesting depth added 30). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/mod.rs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"30ce1e4e2ddbf15902ed01d222d73cd1b878e11e8db0a945f5018ffc9622a0fe"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_expr_plain_form (cognitive 77): Writer::write_expr_plain_form has cognitive complexity 77 (threshold 15). Drivers by points: if/else 20 (40 pts), match/switch 16 (31 pts), loops 2 (5 pts), boolean chains 1 (nesting depth added 38). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1502}}}],"partialFingerprints":{"codehealthFindingId/v1":"55efc7a46b281101a38a3c6dd71f50728987b23fe4871ef7ac91fb650640a218"}},{"ruleId":"D2","level":"warning","message":{"text":"StatementGraph::add (cognitive 76): StatementGraph::add has cognitive complexity 76 (threshold 15). Drivers by points: if/else 16 (38 pts), match/switch 8 (25 pts), loops 5 (13 pts) (nesting depth added 47). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed8e8f13b02573744651ebae040439b36b9d6bcc0e0925703ce3e2f4b04db510"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::process_entry_point (cognitive 76): Frontend::process_entry_point has cognitive complexity 76 (threshold 15). Drivers by points: if/else 15 (58 pts), loops 6 (12 pts), match/switch 3 (6 pts) (nesting depth added 52). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/function.rs"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcbca053d77b135d5ccd57781ca4631b451af7b61cf0537d227c0cbe59be1ccd"}},{"ruleId":"D2","level":"warning","message":{"text":"ParsingContext::parse_statement (cognitive 74): ParsingContext::parse_statement has cognitive complexity 74 (threshold 15). Drivers by points: if/else 21 (45 pts), match/switch 7 (21 pts), loops 2 (5 pts), boolean chains 3 (nesting depth added 41). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/functions.rs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2f836158df45e420ff6ab554d4bfb3596827f3fe25911a0743fad9774034d0b"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::begin_render_pass_inner::fill_arc_desc (cognitive 74): CommandEncoder::begin_render_pass_inner::fill_arc_desc has cognitive complexity 74 (threshold 15). Drivers by points: if/else 28 (61 pts), match/switch 2 (8 pts), boolean chains 4, loops 1 (nesting depth added 39). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1886}}}],"partialFingerprints":{"codehealthFindingId/v1":"501004ca15f9679ea28ff1e4a2ff754b1f16eff33831650376cb3449886d413b"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_xtask::cts::run_cts (cognitive 74): wgpu_xtask::cts::run_cts has cognitive complexity 74 (threshold 15). Drivers by points: if/else 41 (59 pts), boolean chains 8, match/switch 2 (4 pts), loops 3 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"xtask/src/cts.rs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"1140239e1caa0e52adfe26621754d831c5ac39009d63a3392dc20bad869c6df3"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_pipeline_layout (cognitive 73): Device::create_pipeline_layout has cognitive complexity 73 (threshold 15). Drivers by points: if/else 21 (35 pts), match/switch 6 (22 pts), loops 8 (16 pts) (nesting depth added 38). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":970}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0a9f48e43e11372954439da85df4bd6c5847d1c849d0d85457b8e5e9ccd02c2"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_math_expression (cognitive 72): Writer::write_math_expression has cognitive complexity 72 (threshold 15). Drivers by points: if/else 24 (46 pts), match/switch 12 (24 pts), boolean chains 2 (nesting depth added 34). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3078}}}],"partialFingerprints":{"codehealthFindingId/v1":"4de46097301e40cc7d2a109d0e96aac256b0c071df3c1605869b166348d3e349"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_global_var (cognitive 72): Validator::validate_global_var has cognitive complexity 72 (threshold 15). Drivers by points: if/else 24 (51 pts), match/switch 8 (18 pts), boolean chains 3 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":920}}}],"partialFingerprints":{"codehealthFindingId/v1":"6904953778cd147d6cbc0e96e0379a9ef0d0065332a7d036271b5d215f27f028"}},{"ruleId":"D2","level":"warning","message":{"text":"FeaturesManager::check_availability (cognitive 69): FeaturesManager::check_availability has cognitive complexity 69 (threshold 15). Drivers by points: boolean chains 44, if/else 24, match/switch 1. To reduce it, name the conditions: bind each compound test to a well-named local or a small predicate function, so the body reads as a sequence of named decisions rather than a chain of operators."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"c128552d01737d8755de006460d4b9e0f4d93e1abf32fa4ef6d1eff60d24dfc3"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_bind_group (cognitive 69): Device::create_bind_group has cognitive complexity 69 (threshold 15). Drivers by points: if/else 10 (33 pts), loops 6 (23 pts), match/switch 3 (13 pts) (nesting depth added 50). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1090}}}],"partialFingerprints":{"codehealthFindingId/v1":"8010dc93d68e074dfb6219e97a874a93e32c6c83b32033148da7ad2aef3868c1"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_functions (cognitive 68): Writer::write_wrapped_functions has cognitive complexity 68 (threshold 15). Drivers by points: if/else 10 (35 pts), match/switch 10 (28 pts), loops 2 (5 pts) (nesting depth added 46). Of this number, 53 points are the body\u0027s own statements and 15 belong to one function item inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1844}}}],"partialFingerprints":{"codehealthFindingId/v1":"b25c4e17b707e7b6f7377d50ee8164a4609b8d10f744b3945cf530ae38126213"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::function_call (cognitive 68): Frontend::function_call has cognitive complexity 68 (threshold 15). Drivers by points: if/else 16 (37 pts), match/switch 7 (20 pts), loops 5 (7 pts), boolean chains 4 (nesting depth added 36). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"49c883f39551609187514a442bbf7a54fbd8d3645191682c1582e8c71b4f4119"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write (cognitive 67): Writer::write has cognitive complexity 67 (threshold 15). Drivers by points: if/else 18 (43 pts), loops 9 (12 pts), match/switch 3 (10 pts), boolean chains 2 (nesting depth added 35). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":324}}}],"partialFingerprints":{"codehealthFindingId/v1":"879ff9e4219cbd98514af4469a986d5d41cc55fb2cee42aa7dd7f2182bae4f1d"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::wgsl::parse::number::parse (cognitive 67): naga::front::wgsl::parse::number::parse has cognitive complexity 67 (threshold 15). Drivers by points: if/else 22 (55 pts), match/switch 6 (9 pts), loops 2, boolean chains 1 (nesting depth added 36). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"95f96c3a343d532662ee247efd29acef1aa01344f70c65833a21cea93b07b21f"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_std140_compat_type_declaration (cognitive 66): Writer::write_std140_compat_type_declaration has cognitive complexity 66 (threshold 15). Drivers by points: if/else 10 (36 pts), match/switch 6 (18 pts), loops 4 (12 pts) (nesting depth added 46). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2345}}}],"partialFingerprints":{"codehealthFindingId/v1":"b022faa3a26126fd2ea3626469505166a794599822e5164f9db5dedce41632d0"}},{"ruleId":"D2","level":"warning","message":{"text":"Module::analyze_mesh_shader_info (cognitive 65): Module::analyze_mesh_shader_info has cognitive complexity 65 (threshold 15). Drivers by points: if/else 9 (32 pts), match/switch 6 (25 pts), loops 2 (8 pts) (nesting depth added 48). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/mod.rs"},"region":{"startLine":757}}}],"partialFingerprints":{"codehealthFindingId/v1":"9dae3364029efcd8a5aaffb9a2ca382a052be254a4cbb96c300f0edb61f984bc"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_module_handles (cognitive 65): Validator::validate_module_handles has cognitive complexity 65 (threshold 15). Drivers by points: loops 21 (37 pts), if/else 15 (25 pts), match/switch 1 (3 pts) (nesting depth added 28). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"284f51f3bb53d064aa1d2b39938e262f01586196fe64c364f77be136e135eef7"}},{"ruleId":"D2","level":"warning","message":{"text":"PhysicalDeviceFeatures::from_extensions_and_requested_features (cognitive 64): PhysicalDeviceFeatures::from_extensions_and_requested_features has cognitive complexity 64 (threshold 15). Drivers by points: if/else 52, boolean chains 11, match/switch 1. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa87642622ec2dcf9ddf0536dba06e50368ec8bb85aa1ecc0e25b38f7bed613a"}},{"ruleId":"D2","level":"warning","message":{"text":"FunctionInfo::process_block (cognitive 62): FunctionInfo::process_block has cognitive complexity 62 (threshold 15). Drivers by points: if/else 13 (37 pts), loops 5 (13 pts), match/switch 4 (11 pts), boolean chains 1 (nesting depth added 39). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":879}}}],"partialFingerprints":{"codehealthFindingId/v1":"206bdf4cd64ef34b0c07b181af2cde120929f92af755a79c7445966549ace2ae"}},{"ruleId":"D2","level":"warning","message":{"text":"ConstantEvaluator::math (cognitive 60): ConstantEvaluator::math has cognitive complexity 60 (threshold 15). Drivers by points: if/else 21 (40 pts), match/switch 9 (16 pts), boolean chains 2, loops 1 (2 pts) (nesting depth added 27). Of this number, 41 points are the body\u0027s own statements and 19 belong to 4 function items inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1489}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c61292a7d9ff63ece7ef466531804d3f1d27fa5be9ff7d569a3ca47bbd7054d"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_pipeline_layout (cognitive 60): Device::create_pipeline_layout has cognitive complexity 60 (threshold 15). Drivers by points: if/else 11 (36 pts), loops 6 (12 pts), match/switch 2 (11 pts), boolean chains 1 (nesting depth added 40). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":903}}}],"partialFingerprints":{"codehealthFindingId/v1":"7258521dcf470905012fb77cf8d27fc6f83e41be8b1eabda1c1eea5d06d2630b"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_entry_point_mesh_shader_info (cognitive 59): Writer::write_entry_point_mesh_shader_info has cognitive complexity 59 (threshold 15). Drivers by points: if/else 9 (20 pts), loops 8 (20 pts), match/switch 9 (19 pts) (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f5b0fa118129bc180c362c23659a91d7cf5c9a57eef6e04ed78cd7b550c4efe"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapper_function (cognitive 58): Writer::write_wrapper_function has cognitive complexity 58 (threshold 15). Drivers by points: if/else 22 (38 pts), loops 7 (14 pts), match/switch 3 (4 pts), boolean chains 2 (nesting depth added 24). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mesh_shader.rs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"44d8f312ba65d9ec6f96fe13952c6cc971732d9e6ec83fea3b309a61f54e53d9"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::track::texture::update (cognitive 58): wgpu_core::track::texture::update has cognitive complexity 58 (threshold 15). Drivers by points: loops 10 (35 pts), if/else 5 (20 pts), match/switch 2, boolean chains 1 (nesting depth added 40). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1460}}}],"partialFingerprints":{"codehealthFindingId/v1":"41d91acacdc2494b00dbdc612f756d3698a35fcd7ed188c9ec4265974506f68f"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cognitive 57): CommandEncoder::begin_render_pass has cognitive complexity 57 (threshold 15). Drivers by points: if/else 18 (41 pts), match/switch 4 (8 pts), boolean chains 5, loops 2 (3 pts) (nesting depth added 28). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a4e8327cd5e171a95bd59099deaf484eea1248ffecbe4f8d231495810419910"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::expression_for_reference (cognitive 56): Lowerer::expression_for_reference has cognitive complexity 56 (threshold 15). Drivers by points: if/else 10 (33 pts), match/switch 9 (19 pts), loops 1 (4 pts) (nesting depth added 36). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":2391}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbf47c77c5f617c3ff1d473ea69d9a1adf1e1519f3680c8c74e5cdfbf643c366"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::back::dot::write_function_expressions (cognitive 56): naga::back::dot::write_function_expressions has cognitive complexity 56 (threshold 15). Drivers by points: if/else 15 (32 pts), match/switch 7 (18 pts), loops 3 (6 pts) (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"c42e873bf35ac99b106dca340c67dcc899ced44777bd72d02e789cf6decea258"}},{"ruleId":"D2","level":"warning","message":{"text":"Adapter::device_from_raw (cognitive 56): Adapter::device_from_raw has cognitive complexity 56 (threshold 15). Drivers by points: if/else 51, boolean chains 4, match/switch 1. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2667}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cf2716b83b25cd441006509b88db3431de14dce5bde90839b69b2ae48b77374"}},{"ruleId":"D2","level":"warning","message":{"text":"lock_analyzer::main (cognitive 55): lock_analyzer::main has cognitive complexity 55 (threshold 15). Drivers by points: loops 8 (23 pts), if/else 8 (19 pts), match/switch 3 (11 pts), boolean chains 2 (nesting depth added 34). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"lock-analyzer/src/main.rs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cc70efb63a05d13f422a3424e9ca2ed4cc369e7334f7d774fa956a32712cbc4"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_logical_layout (cognitive 55): Writer::write_logical_layout has cognitive complexity 55 (threshold 15). Drivers by points: if/else 21 (33 pts), loops 12 (14 pts), boolean chains 4, match/switch 3 (4 pts) (nesting depth added 15). Of this number, 54 points are the body\u0027s own statements and 1 belongs to one function item inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3713}}}],"partialFingerprints":{"codehealthFindingId/v1":"c26b2687ba27b5fe8cfa7faa640beeb9202cf2565443147b9b7f778b3b31c5e8"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::parse_image_sample (cognitive 55): Frontend::parse_image_sample has cognitive complexity 55 (threshold 15). Drivers by points: if/else 17 (27 pts), match/switch 13 (23 pts), loops 2 (4 pts), boolean chains 1 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":490}}}],"partialFingerprints":{"codehealthFindingId/v1":"afb8c17da7c5b085fd7074aa91abd861147392a1f83ef4f6a0e938c89f7dc309"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::function (cognitive 55): Lowerer::function has cognitive complexity 55 (threshold 15). Drivers by points: if/else 17 (35 pts), match/switch 5 (17 pts), loops 1 (3 pts) (nesting depth added 32). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1560}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6af0de4ff6eb3f74520a5b23d22c49e9d7064de5004d64f6c58c3e5f0bee21c"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::validate_texture_descriptor_inner (cognitive 55): Device::validate_texture_descriptor_inner has cognitive complexity 55 (threshold 15). Drivers by points: if/else 34 (47 pts), boolean chains 4, loops 2 (3 pts), match/switch 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1736}}}],"partialFingerprints":{"codehealthFindingId/v1":"d882c72bbbd05eceee0ae3fb825a1ca996a32ddc5d9ba1f74d06a5fa4ff3503f"}},{"ruleId":"D2","level":"warning","message":{"text":"Queue::submit_inner (cognitive 54): Queue::submit_inner has cognitive complexity 54 (threshold 15). Drivers by points: if/else 13 (40 pts), match/switch 5 (9 pts), loops 2 (4 pts), boolean chains 1 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1511}}}],"partialFingerprints":{"codehealthFindingId/v1":"8342fb111c812353b3aeacdae38266e6dc5e7391e05c8d6292e3298d5b42f453"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_texture (cognitive 53): Device::create_texture has cognitive complexity 53 (threshold 15). Drivers by points: if/else 17 (29 pts), loops 5 (21 pts), match/switch 1 (2 pts), boolean chains 1 (nesting depth added 29). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":943}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff9a533089fdbc43b8672a40103f0c91126e2806f76cafb5645b8354dc59ca78"}},{"ruleId":"D2","level":"warning","message":{"text":"PhysicalDeviceProperties::get_required_extensions (cognitive 53): PhysicalDeviceProperties::get_required_extensions has cognitive complexity 53 (threshold 15). Drivers by points: if/else 46 (51 pts), boolean chains 2 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1247}}}],"partialFingerprints":{"codehealthFindingId/v1":"488a5a2905e160c2456fb4b5af6a8151fdc363465f3d03f491c4746451435e12"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_global_variable (cognitive 52): Writer::write_global_variable has cognitive complexity 52 (threshold 15). Drivers by points: if/else 20 (43 pts), match/switch 5 (9 pts) (nesting depth added 27). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3452}}}],"partialFingerprints":{"codehealthFindingId/v1":"b16a7f8fee43489b116f06ad1b7a03c281759659d0f11e9ee3ccdd787e9e88bf"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_switch (cognitive 51): Writer::write_switch has cognitive complexity 51 (threshold 15). Drivers by points: if/else 12 (25 pts), loops 5 (18 pts), boolean chains 4, match/switch 2 (4 pts) (nesting depth added 28). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2033}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f1fd61f169f40a90643d2ea0858fa9af3d7dc14ebc7f21401f4c45d2c1426f5"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_atomic (cognitive 51): Validator::validate_atomic has cognitive complexity 51 (threshold 15). Drivers by points: if/else 23 (48 pts), match/switch 2, boolean chains 1 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"63bb06df83012c8bfe289070993170d7b347d2037c4faeff6628c730d85d07a0"}},{"ruleId":"D2","level":"warning","message":{"text":"Texture::create_view_inner (cognitive 51): Texture::create_view_inner has cognitive complexity 51 (threshold 15). Drivers by points: if/else 31 (35 pts), boolean chains 9, match/switch 6 (7 pts) (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":1856}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee2dd0b4d54ae5c579c4321f44e5622647fe84b410827f31e56f4e58ffeefe3d"}},{"ruleId":"D2","level":"warning","message":{"text":"Resource::check_binding_use (cognitive 51): Resource::check_binding_use has cognitive complexity 51 (threshold 15). Drivers by points: match/switch 13 (31 pts), if/else 8 (17 pts), boolean chains 3 (nesting depth added 27). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0e1778a8a4e7fc4318a6519654b54293ccd4e72e614bdbc55ea3da158ec6d71"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cognitive 51): CommandEncoder::begin_render_pass has cognitive complexity 51 (threshold 15). Drivers by points: if/else 28 (47 pts), loops 3 (4 pts) (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":895}}}],"partialFingerprints":{"codehealthFindingId/v1":"e29942536bdf7aa4b47adc466f50336b89278561aedc35a725422ad1463a2368"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::map_binding (cognitive 50): Writer::map_binding has cognitive complexity 50 (threshold 15). Drivers by points: if/else 10 (23 pts), match/switch 8 (22 pts), boolean chains 5 (nesting depth added 27). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3118}}}],"partialFingerprints":{"codehealthFindingId/v1":"220f9f8aa0c8759b2f8fcaa5bc5ee96fd50aa468ecbfd34f3f90077d3d68b7b2"}},{"ruleId":"D2","level":"warning","message":{"text":"FunctionTracer::trace_block (cognitive 50): FunctionTracer::trace_block has cognitive complexity 50 (threshold 15). Drivers by points: if/else 6 (24 pts), loops 5 (15 pts), match/switch 3 (11 pts) (nesting depth added 36). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body. This shape REPEATS in the file: one other method here (FunctionMap::adjust_body) has the same decision points, in the same order, at the same nesting depths \u2014 so this is one pattern written twice rather than two separate problems. Splitting this body alone leaves the other exactly as it is. Where these are variations on one operation, the change that clears both is the shared one: lift the common shape into a single routine the variants call, parameterised by whatever genuinely differs between them, and keep in each method only the part that is not shared."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e03978e41caa6716f456fea4be265c50435b94bf5c24fee5b96370981d6f9fb"}},{"ruleId":"D2","level":"warning","message":{"text":"FunctionMap::adjust_body (cognitive 50): FunctionMap::adjust_body has cognitive complexity 50 (threshold 15). Drivers by points: if/else 6 (24 pts), loops 5 (15 pts), match/switch 3 (11 pts) (nesting depth added 36). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body. This shape REPEATS in the file: one other method here (FunctionTracer::trace_block) has the same decision points, in the same order, at the same nesting depths \u2014 so this is one pattern written twice rather than two separate problems. Splitting this body alone leaves the other exactly as it is. Where these are variations on one operation, the change that clears both is the shared one: lift the common shape into a single routine the variants call, parameterised by whatever genuinely differs between them, and keep in each method only the part that is not shared."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8d1c4aa9076ebf019317d3cb7925b7f8d75cffd5f5b495cbaf0b9ed24015c04"}},{"ruleId":"D2","level":"warning","message":{"text":"FeaturesManager::write (cognitive 49): FeaturesManager::write has cognitive complexity 49 (threshold 15). Drivers by points: if/else 29 (36 pts), boolean chains 11, match/switch 1 (2 pts) (nesting depth added 8). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9516f9d27d1b7dcd99077de6c6b95596ceca37200fa3bdbc9fcccf4807e20c5"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_type_defs (cognitive 49): Writer::write_type_defs has cognitive complexity 49 (threshold 15). Drivers by points: if/else 11 (28 pts), match/switch 5 (13 pts), loops 4 (8 pts) (nesting depth added 29). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":4703}}}],"partialFingerprints":{"codehealthFindingId/v1":"493616175bd0184adf558140b64d0fcddeaa94ead46a743acc587ee5195e3beb"}},{"ruleId":"D2","level":"warning","message":{"text":"ParsingContext::parse_declaration (cognitive 49): ParsingContext::parse_declaration has cognitive complexity 49 (threshold 15). Drivers by points: if/else 12 (25 pts), match/switch 7 (23 pts), boolean chains 1 (nesting depth added 29). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e8a8bf61066251d14cafa374c7e3a6b11355dc318c728402634030cd6e55c00"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::common::wgsl::types::try_write_type_inner (cognitive 48): naga::common::wgsl::types::try_write_type_inner has cognitive complexity 48 (threshold 15). Drivers by points: if/else 23 (42 pts), match/switch 4 (6 pts) (nesting depth added 21). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/wgsl/types.rs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"009fb4cf1d31014bccfe4194e9f50e42efa2e492c488ba1e354017b1b78a71fc"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::wgsl::parse::lexer::consume_token (cognitive 48): naga::front::wgsl::parse::lexer::consume_token has cognitive complexity 48 (threshold 15). Drivers by points: match/switch 16 (37 pts), if/else 2 (7 pts), loops 1 (3 pts), boolean chains 1 (nesting depth added 28). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/lexer.rs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"04234315917cc504ab594568ec7b60b009bc9f2988b939001f85a192e55024fd"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroCall::call (cognitive 47): MacroCall::call has cognitive complexity 47 (threshold 15). Drivers by points: match/switch 9 (23 pts), if/else 10 (20 pts), loops 1 (4 pts) (nesting depth added 27). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1588}}}],"partialFingerprints":{"codehealthFindingId/v1":"69ba41829c4b49601200a5f6eff0155d0d59b2dbbadf23eb6d7d834889ee7064"}},{"ruleId":"D2","level":"warning","message":{"text":"Parser::statement (cognitive 47): Parser::statement has cognitive complexity 47 (threshold 15). Drivers by points: if/else 12 (31 pts), loops 4 (10 pts), match/switch 3 (5 pts), boolean chains 1 (nesting depth added 27). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1255}}}],"partialFingerprints":{"codehealthFindingId/v1":"20503f17b538acec1602a3143055d7f5089accc84eba669e79cb81ca481be794"}},{"ruleId":"D2","level":"warning","message":{"text":"Namer::reset (cognitive 47): Namer::reset has cognitive complexity 47 (threshold 15). Drivers by points: loops 14 (25 pts), if/else 5 (12 pts), match/switch 4 (10 pts) (nesting depth added 24). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/namer.rs"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"901bbf97d21d46025f6cbc518cc91a09154b9edfbfbe4ab353b0f895382812ac"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_bind_group_layout_impl (cognitive 47): Device::create_bind_group_layout_impl has cognitive complexity 47 (threshold 15). Drivers by points: if/else 12 (26 pts), match/switch 6 (17 pts), boolean chains 2, loops 2 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2978}}}],"partialFingerprints":{"codehealthFindingId/v1":"793f20327eb554d0091a463d522a80da4f22fb4083c0f3c4224f6d3f341456cf"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_bind_group (cognitive 47): Device::create_bind_group has cognitive complexity 47 (threshold 15). Drivers by points: loops 9 (25 pts), match/switch 4 (12 pts), if/else 6 (10 pts) (nesting depth added 28). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1591}}}],"partialFingerprints":{"codehealthFindingId/v1":"6521f38bfa0d70afa5c6cbbeb761115036f78e91ba3cfab84ae85e6d6b2c8cc6"}},{"ruleId":"D2","level":"warning","message":{"text":"Adapter::texture_format_capabilities (cognitive 47): Adapter::texture_format_capabilities has cognitive complexity 47 (threshold 15). Drivers by points: if/else 30 (44 pts), match/switch 2, boolean chains 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1e00949c2d403afce2467adf894e599c6518afa775f49c7cb7253ca154a3243"}},{"ruleId":"D2","level":"warning","message":{"text":"Parser::global_decl (cognitive 46): Parser::global_decl has cognitive complexity 46 (threshold 15). Drivers by points: if/else 16 (29 pts), match/switch 6 (12 pts), loops 2 (4 pts), boolean chains 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1839}}}],"partialFingerprints":{"codehealthFindingId/v1":"e548c7b1565b84434af66e480dc15da7cc336c1700f255e495608440a255268e"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::builtins::inject_double_builtin (cognitive 46): naga::front::glsl::builtins::inject_double_builtin has cognitive complexity 46 (threshold 15). Drivers by points: match/switch 14 (36 pts), loops 5 (10 pts) (nesting depth added 27). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1047}}}],"partialFingerprints":{"codehealthFindingId/v1":"46a500f3ec65872a35484dd20fddc86d9f62f8bca069f4e9b03d2b40f3d4c606"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::load_shader (cognitive 46): Device::load_shader has cognitive complexity 46 (threshold 15). Drivers by points: match/switch 8 (27 pts), if/else 6 (15 pts), boolean chains 2, loops 1 (2 pts) (nesting depth added 29). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d5567d4b05d8144268e655cf42dd58cf4877a8b5fa1d2ad3fc6a6e36084b940"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_render_pipeline (cognitive 45): Device::create_render_pipeline has cognitive complexity 45 (threshold 15). Drivers by points: if/else 17 (26 pts), match/switch 8 (11 pts), loops 4 (8 pts) (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1997}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b9d26e70e22e86ce6b88e5460c444663ba15c83c7d58305191463585f47a07d"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_binary_ops (cognitive 44): Writer::write_wrapped_binary_ops has cognitive complexity 44 (threshold 15). Drivers by points: if/else 7 (26 pts), match/switch 5 (17 pts), loops 1 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1593}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6519786d0c94d55d79cc76e792edbaf70897e43aa1345e01174d1bc647a9996"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_global (cognitive 44): Writer::write_global has cognitive complexity 44 (threshold 15). Drivers by points: if/else 24 (38 pts), match/switch 4 (6 pts) (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1024}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b09f10d7e8ad58646bea1a2c122920f07fecdd8a3634ab9353275ef1ddc9330"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_binary_op (cognitive 44): Writer::write_wrapped_binary_op has cognitive complexity 44 (threshold 15). Drivers by points: if/else 16 (30 pts), match/switch 8 (14 pts) (nesting depth added 20). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5964}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2ea39c253270cfcbf43970ceaf621f2755518f161e3c9c434f3008b621900c1"}},{"ruleId":"D2","level":"warning","message":{"text":"naga_cli::bin::naga::run (cognitive 44): naga_cli::bin::naga::run has cognitive complexity 44 (threshold 15). Drivers by points: if/else 27 (36 pts), match/switch 5 (7 pts), loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga-cli/src/bin/naga.rs"},"region":{"startLine":484}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b6f33685d81a521f65afbbf7be92c534766816923f234dd3497d1ee1bd9c710"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::track::texture::barrier (cognitive 44): wgpu_core::track::texture::barrier has cognitive complexity 44 (threshold 15). Drivers by points: if/else 7 (26 pts), loops 6 (16 pts), boolean chains 1, match/switch 1 (nesting depth added 29). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1341}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d875ebde9ef478dc0ccd76eb0b406d029c9dfc9c0e3d2f611923c83bcea0473"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::track::texture::merge (cognitive 43): wgpu_core::track::texture::merge has cognitive complexity 43 (threshold 15). Drivers by points: loops 8 (23 pts), if/else 5 (19 pts), match/switch 1 (nesting depth added 29). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1207}}}],"partialFingerprints":{"codehealthFindingId/v1":"aca7e9ca4bb8026f2c2633c687543b3f79f086d2b637bbb297ac5cd169e1d27e"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_image_load (cognitive 42): Writer::write_image_load has cognitive complexity 42 (threshold 15). Drivers by points: if/else 23 (37 pts), match/switch 3 (4 pts), boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":4088}}}],"partialFingerprints":{"codehealthFindingId/v1":"12669cf35084dccabb76b2d177f42dcf11d03657ad2fddb8e3b3aa4fc3b58f20"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::put_return_value (cognitive 42): Writer::put_return_value has cognitive complexity 42 (threshold 15). Drivers by points: if/else 9 (30 pts), loops 2 (8 pts), match/switch 2 (3 pts), boolean chains 1 (nesting depth added 28). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3614}}}],"partialFingerprints":{"codehealthFindingId/v1":"018943792b846f942353c45dce9b1d0719b03a0b110aa35b6e6b540b373e4973"}},{"ruleId":"D2","level":"warning","message":{"text":"FunctionInfo::process_expression (cognitive 42): FunctionInfo::process_expression has cognitive complexity 42 (threshold 15). Drivers by points: match/switch 10 (25 pts), if/else 9 (16 pts), boolean chains 1 (nesting depth added 22). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":531}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ff065f50fbf22e2015f289331ac7d63d3e549a0661f4c6a57cf4aa290b5d2c6"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_ray_query_stmt (cognitive 41): Writer::write_ray_query_stmt has cognitive complexity 41 (threshold 15). Drivers by points: if/else 19 (37 pts), loops 1 (3 pts), match/switch 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/ray.rs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"da8ec7c5a00225291c1552c9078a89cb1a313bb5a291cbef06d66fabde800959"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::add_global_var (cognitive 41): Frontend::add_global_var has cognitive complexity 41 (threshold 15). Drivers by points: if/else 8 (23 pts), match/switch 7 (18 pts) (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5c0791092b13816158628ab29173d03d7b139aecf29d044e923ac1216d1fdfa"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::back::pipeline_constants::process_overrides (cognitive 41): naga::back::pipeline_constants::process_overrides has cognitive complexity 41 (threshold 15). Drivers by points: if/else 12 (23 pts), loops 8 (11 pts), match/switch 2 (4 pts), boolean chains 3 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"3910c0cf9d04cea8c9cb0fc572b8fb52576f00ef9e46d61ac1e1e38d4c441b4e"}},{"ruleId":"D2","level":"warning","message":{"text":"player::bin::play::main (cognitive 41): player::bin::play::main has cognitive complexity 41 (threshold 15). Drivers by points: if/else 11 (31 pts), match/switch 4 (6 pts), loops 2 (3 pts), boolean chains 1 (nesting depth added 23). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/bin/play.rs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"2efe928e05c4af390b58db23d6a919cfc7ef24d213f79286be25e1b36e0ccaf0"}},{"ruleId":"D2","level":"warning","message":{"text":"Entry::check (cognitive 40): Entry::check has cognitive complexity 40 (threshold 15). Drivers by points: if/else 12 (28 pts), loops 2 (8 pts), match/switch 1 (4 pts) (nesting depth added 25). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bind.rs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"73627231d04cbc29a39820fcc15accfc4dbe2e1ef9de50302451f2b27cf05a4f"}},{"ruleId":"D2","level":"warning","message":{"text":"PhysicalDeviceFeatures::to_wgpu (cognitive 40): PhysicalDeviceFeatures::to_wgpu has cognitive complexity 40 (threshold 15). Drivers by points: boolean chains 23, if/else 16 (17 pts) (nesting depth added 1). To reduce it, name the conditions: bind each compound test to a well-named local or a small predicate function, so the body reads as a sequence of named decisions rather than a chain of operators."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":665}}}],"partialFingerprints":{"codehealthFindingId/v1":"1add6b7712fd78f04b3901795933abef14bdee3e71cc5315529f0e38fb45c978"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cognitive 39): CommandEncoder::begin_render_pass has cognitive complexity 39 (threshold 15). Drivers by points: if/else 19 (33 pts), boolean chains 4, loops 2 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1026}}}],"partialFingerprints":{"codehealthFindingId/v1":"b255f8898f01733ab1856c27f92a5146cf0e088bf46eb8dfd43436ab7db1fc9b"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_render_pipeline (cognitive 39): Device::create_render_pipeline has cognitive complexity 39 (threshold 15). Drivers by points: if/else 17 (26 pts), match/switch 4 (7 pts), loops 3 (6 pts) (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1982}}}],"partialFingerprints":{"codehealthFindingId/v1":"f279e44d74b604c6bb5a811b7baa161f2d3cf5b74d067443a3b265d68bf4b8a9"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_function (cognitive 38): Writer::write_function has cognitive complexity 38 (threshold 15). Drivers by points: if/else 12 (21 pts), loops 4 (8 pts), match/switch 6 (8 pts), boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1219}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed032af244a2a3c9274ed4ca988230b91edc43b6f6388af50a5c99902f2ab3d0"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::parse_global_variable (cognitive 38): Frontend::parse_global_variable has cognitive complexity 38 (threshold 15). Drivers by points: match/switch 7 (18 pts), if/else 10 (15 pts), loops 1 (4 pts), boolean chains 1 (nesting depth added 19). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2951}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b9fdb471e0e463bd3e273b9770b4b132ca12d64fe2685e3e777138bc2343153"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_varying (cognitive 37): Writer::write_varying has cognitive complexity 37 (threshold 15). Drivers by points: if/else 15 (26 pts), match/switch 5 (8 pts), loops 1 (2 pts), boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1052}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d959bab8af9875f62dbdf5c9a0c7be3f0a35d2fcca467abd9ea2bd684562253"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_buffer_inner (cognitive 37): Device::create_buffer_inner has cognitive complexity 37 (threshold 15). Drivers by points: if/else 26 (32 pts), boolean chains 5 (nesting depth added 6). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1152}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ccd55e473a2d5c884e61b172959224f5464e67b4e2fc8e4f034f0b539f3fc29"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::command::ray_tracing::build_acceleration_structures (cognitive 37): wgpu_core::command::ray_tracing::build_acceleration_structures has cognitive complexity 37 (threshold 15). Drivers by points: if/else 13 (26 pts), loops 5 (7 pts), match/switch 1 (3 pts), boolean chains 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"89a5b90a7b0d66ad6149ef805c976c161592c5bc5521ee529906d4fea6bc155c"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::r#struct (cognitive 36): Lowerer::r#struct has cognitive complexity 36 (threshold 15). Drivers by points: if/else 18 (34 pts), loops 2 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":4776}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2c52171fc9345000d190e4ec0d271ebb02e01001b519fccc5b63f74c640286c"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandBufferMutable::validate_acceleration_structure_actions (cognitive 36): CommandBufferMutable::validate_acceleration_structure_actions has cognitive complexity 36 (threshold 15). Drivers by points: if/else 4 (16 pts), loops 5 (14 pts), match/switch 2 (6 pts) (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":484}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5638c1dc6283ceba4fc636d747cb1a06f61b5e9bd6fc5d1fd373b1cb3094c39"}},{"ruleId":"D2","level":"warning","message":{"text":"Inner::create (cognitive 36): Inner::create has cognitive complexity 36 (threshold 15). Drivers by points: if/else 20 (21 pts), match/switch 5 (10 pts), loops 2 (3 pts), boolean chains 2 (nesting depth added 7). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":408}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fbb942c97fdcd59ed4b5c547b8e7eb5fdcf9d97eeeee6d6206764655eaa3060"}},{"ruleId":"D2","level":"warning","message":{"text":"TypeContext::fmt (cognitive 35): TypeContext::fmt has cognitive complexity 35 (threshold 15). Drivers by points: if/else 13 (22 pts), match/switch 7 (12 pts), boolean chains 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"89979eeb3a9ef87cbc5b486b12fbe2d5d856f9de9b827743ac92935b8ad43a4d"}},{"ruleId":"D2","level":"warning","message":{"text":"ConstantEvaluator::cast (cognitive 35): ConstantEvaluator::cast has cognitive complexity 35 (threshold 15). Drivers by points: match/switch 15 (33 pts), loops 1 (2 pts) (nesting depth added 19). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2486}}}],"partialFingerprints":{"codehealthFindingId/v1":"80430bd934921390bd261fc7115ec273ddbd3bbf583cdd6f562fd6e51eac2e49"}},{"ruleId":"D2","level":"warning","message":{"text":"Instance::init_with_callback (cognitive 35): Instance::init_with_callback has cognitive complexity 35 (threshold 15). Drivers by points: if/else 22 (28 pts), boolean chains 4, match/switch 2 (3 pts) (nesting depth added 7). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3a530917896b7a101327d831db52486f0676f0b381f2d52128f47e51c74ada6"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_constructor_function (cognitive 34): Writer::write_wrapped_constructor_function has cognitive complexity 34 (threshold 15). Drivers by points: if/else 8 (17 pts), loops 5 (12 pts), match/switch 3 (5 pts) (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":757}}}],"partialFingerprints":{"codehealthFindingId/v1":"da735badd1e045982d2a3bb4bb4dd659505d8be8ab3e345da5c5a2e7cdfca6c1"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::field_selection (cognitive 34): Frontend::field_selection has cognitive complexity 34 (threshold 15). Drivers by points: if/else 6 (16 pts), match/switch 5 (11 pts), loops 2 (7 pts) (nesting depth added 21). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"452ad385a87f4eeeb9f26f6ef1d38c8850bad24f2e962a4beeb1a6e30b7e869d"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::push_barrier (cognitive 34): CommandEncoder::push_barrier has cognitive complexity 34 (threshold 15). Drivers by points: loops 3 (12 pts), match/switch 3 (12 pts), if/else 7 (10 pts) (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"218dd832c2264ffeab6bbb281f3f2b10f5d71d224a63a9d47aaba6af54447cf8"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::deferred_resource_destruction (cognitive 33): Device::deferred_resource_destruction has cognitive complexity 33 (threshold 15). Drivers by points: if/else 6 (24 pts), loops 3 (7 pts), match/switch 1 (2 pts) (nesting depth added 23). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":831}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d526ec8f8cee28b167d65dd86543e1c2ed979d276a4e5a5183a7be6801d12d2"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_buffer (cognitive 33): Device::create_buffer has cognitive complexity 33 (threshold 15). Drivers by points: if/else 21 (29 pts), boolean chains 4 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":684}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b1bef760b455f381106308b904468388f4c6c4abe20188ffe44011cb689ef02"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::set_render_pipeline (cognitive 33): CommandEncoder::set_render_pipeline has cognitive complexity 33 (threshold 15). Drivers by points: if/else 16 (21 pts), loops 6 (11 pts), boolean chains 1 (nesting depth added 10). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":872}}}],"partialFingerprints":{"codehealthFindingId/v1":"816b58b4fe8a80b32abd434c8b92b9da7538d0f13fb4bf626455688d4696ad50"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::update_expressions_to_bake (cognitive 32): Writer::update_expressions_to_bake has cognitive complexity 32 (threshold 15). Drivers by points: if/else 9 (23 pts), match/switch 2 (5 pts), boolean chains 2, loops 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"9373d08f4d085496ed0f65e10616e52619afcfc0e48272e2fc6c669c1d8b149f"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_enable_declarations (cognitive 32): Writer::write_enable_declarations has cognitive complexity 32 (threshold 15). Drivers by points: if/else 18 (19 pts), loops 4 (7 pts), boolean chains 3, match/switch 2 (3 pts) (nesting depth added 5). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf52d4d427e6b75a3c3a4e76f0f3758893aad9a6a06fa419b82635a2a7fc72e5"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_function (cognitive 32): Validator::validate_function has cognitive complexity 32 (threshold 15). Drivers by points: if/else 11 (22 pts), match/switch 2 (5 pts), loops 3, boolean chains 2 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":1875}}}],"partialFingerprints":{"codehealthFindingId/v1":"94f752cbc411eb77428ac0f8a28481496b5c0f05a1a24d57fb045aa77a977a82"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::back::pipeline_constants::map_value_to_literal (cognitive 32): naga::back::pipeline_constants::map_value_to_literal has cognitive complexity 32 (threshold 15). Drivers by points: if/else 13 (26 pts), boolean chains 5, match/switch 1 (nesting depth added 13). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":1035}}}],"partialFingerprints":{"codehealthFindingId/v1":"e27918d6fe59aeb396d7433f1f1a3d9ba41bb7613ad5e6ab8d37fe9b470a30f1"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_all_mat_cx2_typedefs_and_functions (cognitive 31): Writer::write_all_mat_cx2_typedefs_and_functions has cognitive complexity 31 (threshold 15). Drivers by points: if/else 7 (26 pts), loops 3 (5 pts) (nesting depth added 21). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":2223}}}],"partialFingerprints":{"codehealthFindingId/v1":"47ffa0404bb831702dcf1d1a5cd91c2d050b78ae32993ffcd34f444ebb149dcb"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_storage_store (cognitive 31): Writer::write_storage_store has cognitive complexity 31 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 4 (10 pts), match/switch 4 (6 pts) (nesting depth added 16). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e755368ef4baa9ae1fd6cb4bb00967c1f4f0d8f2e918583313ac482e1331ba3"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::put_literal (cognitive 31): Writer::put_literal has cognitive complexity 31 (threshold 15). Drivers by points: if/else 18 (30 pts), match/switch 1 (nesting depth added 12). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1932}}}],"partialFingerprints":{"codehealthFindingId/v1":"973f5bb17b1f6575843c07335cdbcf556a55204add7d814de5994139595a16d6"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::parse_function (cognitive 31): Frontend::parse_function has cognitive complexity 31 (threshold 15). Drivers by points: if/else 10 (16 pts), loops 5 (9 pts), match/switch 3 (6 pts) (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/function.rs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"37234b50ae2309afd29b5de0fc59c851122e8a601a23d3367d6f1c41036b82cc"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::lower (cognitive 31): Lowerer::lower has cognitive complexity 31 (threshold 15). Drivers by points: if/else 9 (21 pts), match/switch 3 (9 pts), loops 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1273}}}],"partialFingerprints":{"codehealthFindingId/v1":"487333142ff459af733dc69d72d40ec18ea086e82d2ea00ebc5d03d742ada6c0"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::check_width (cognitive 31): Validator::check_width has cognitive complexity 31 (threshold 15). Drivers by points: if/else 14 (28 pts), match/switch 2 (3 pts) (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"16ced4fc292746abbd2d87ca5e7d1e2179c5fe4876286a7ab339bd28cc01705c"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::back::pipeline_constants::adjust_stmt (cognitive 31): naga::back::pipeline_constants::adjust_stmt has cognitive complexity 31 (threshold 15). Drivers by points: if/else 8 (16 pts), match/switch 5 (9 pts), loops 3 (6 pts) (nesting depth added 15). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":721}}}],"partialFingerprints":{"codehealthFindingId/v1":"21ca637cfade5388782140665bab70f36b7b4d93c8eda884dac3278a7cdd774d"}},{"ruleId":"D2","level":"warning","message":{"text":"Instance::request_adapter (cognitive 31): Instance::request_adapter has cognitive complexity 31 (threshold 15). Drivers by points: if/else 14 (26 pts), loops 2 (3 pts), match/switch 2 (nesting depth added 13). Of this number, 30 points are the body\u0027s own statements and 1 belongs to one function item inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"c543e46980ecc7eaa0edf72f63910b309483f2a16c213d957978f82057b96a53"}},{"ruleId":"D2","level":"warning","message":{"text":"DeviceShared::make_render_pass (cognitive 31): DeviceShared::make_render_pass has cognitive complexity 31 (threshold 15). Drivers by points: if/else 12 (27 pts), loops 1 (2 pts), boolean chains 1, match/switch 1 (nesting depth added 16). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea4e01daf180967cc0bc81bdfed44f956996d0c5f7a695692da5fd8950dfb122"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_functions (cognitive 30): Writer::write_wrapped_functions has cognitive complexity 30 (threshold 15). Drivers by points: if/else 6 (22 pts), match/switch 2 (6 pts), boolean chains 1, loops 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"32bebe1fbd98420ebfaf123ba73ea909e8380b235b453a9df966f513f84e2bb0"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::handle_directive (cognitive 30): Frontend::handle_directive has cognitive complexity 30 (threshold 15). Drivers by points: match/switch 9 (20 pts), if/else 4 (10 pts) (nesting depth added 17). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"342c9c79b0319b869cfa0e8e698acad43f62c208659e0d8ae07c18f23a47e02e"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::valid::compose::validate_compose (cognitive 29): naga::valid::compose::validate_compose has cognitive complexity 29 (threshold 15). Drivers by points: if/else 7 (17 pts), loops 4 (8 pts), match/switch 2 (4 pts) (nesting depth added 16). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/compose.rs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"dac2a322d38c7b3e834f7b79ff8312919f8eb6de7f91c097e9df3bcf16046c5b"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::texture_use_parameters (cognitive 29): Device::texture_use_parameters has cognitive complexity 29 (threshold 15). Drivers by points: if/else 14 (23 pts), match/switch 3 (5 pts), boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4034}}}],"partialFingerprints":{"codehealthFindingId/v1":"47e37f3be58a9fc8556e84b86c0fbbf8dccd8239a615fff0fb0eae8160f0e558"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_bind_group_layout (cognitive 29): Device::create_bind_group_layout has cognitive complexity 29 (threshold 15). Drivers by points: if/else 11 (20 pts), match/switch 3 (7 pts), boolean chains 1, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1463}}}],"partialFingerprints":{"codehealthFindingId/v1":"954f5fa3ad3993f4e8f02162c2cb7bc7a05831b8f3df17a336b155c46dba2910"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_mesh_output_types (cognitive 28): Writer::write_mesh_output_types has cognitive complexity 28 (threshold 15). Drivers by points: if/else 8 (21 pts), loops 2 (3 pts), match/switch 1 (3 pts), boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mesh_shader.rs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"d74912cff16f184bc37a4ea22f092996a8ff9957f346b31b06b8c1a2aa1830c3"}},{"ruleId":"D2","level":"warning","message":{"text":"VaryingContext::validate (cognitive 28): VaryingContext::validate has cognitive complexity 28 (threshold 15). Drivers by points: if/else 9 (19 pts), match/switch 2 (5 pts), loops 1 (3 pts), boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":846}}}],"partialFingerprints":{"codehealthFindingId/v1":"157b166782dbb3a046ca0dc9ae8e234698723440d2206d564b27d78589f92276"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::transition_textures (cognitive 28): CommandEncoder::transition_textures has cognitive complexity 28 (threshold 15). Drivers by points: if/else 9 (26 pts), boolean chains 1, loops 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":642}}}],"partialFingerprints":{"codehealthFindingId/v1":"9016a91652576ad5bf5c930de77c7a043acc7f24df2eb0f226246920b986a538"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_image_query_function (cognitive 27): Writer::write_wrapped_image_query_function has cognitive complexity 27 (threshold 15). Drivers by points: match/switch 7 (16 pts), if/else 4 (9 pts), loops 1 (2 pts) (nesting depth added 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":594}}}],"partialFingerprints":{"codehealthFindingId/v1":"292eab72d1f71b333b1c86a5c6a973d42b031d6e7ee8f0124876760fa64389d1"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_struct (cognitive 27): Writer::write_struct has cognitive complexity 27 (threshold 15). Drivers by points: if/else 5 (13 pts), loops 4 (9 pts), boolean chains 3, match/switch 1 (2 pts) (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1405}}}],"partialFingerprints":{"codehealthFindingId/v1":"036040b72ebbd20fef82dbdafdab32a5171fb4da92d887eb435c5ebc57ff7034"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_convert_from_std140_compat_type (cognitive 27): Writer::write_wrapped_convert_from_std140_compat_type has cognitive complexity 27 (threshold 15). Drivers by points: match/switch 5 (11 pts), loops 4 (10 pts), if/else 4 (6 pts) (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":880}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4b0f54ed544fd441828eb94046282066ad9e2143a5448e58310d7c0aaeefe74"}},{"ruleId":"D2","level":"warning","message":{"text":"Error::as_parse_error (cognitive 27): Error::as_parse_error has cognitive complexity 27 (threshold 15). Drivers by points: match/switch 8 (16 pts), if/else 7 (11 pts) (nesting depth added 12). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":678}}}],"partialFingerprints":{"codehealthFindingId/v1":"603a4f5b6cace1c9a6f7ab1fe6fd4d56ccd2cf8e9143d8e9899e32c1215579e7"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::builtins::texture_args_generator (cognitive 27): naga::front::glsl::builtins::texture_args_generator has cognitive complexity 27 (threshold 15). Drivers by points: if/else 7 (17 pts), loops 3 (6 pts), boolean chains 4 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":2322}}}],"partialFingerprints":{"codehealthFindingId/v1":"d12e7764b8824960b22a75a4bb7a9c61d265e4105830caf561a904b85e04ce9c"}},{"ruleId":"D2","level":"warning","message":{"text":"RenderBundle::execute (cognitive 27): RenderBundle::execute has cognitive complexity 27 (threshold 15). Drivers by points: if/else 9 (19 pts), match/switch 2 (5 pts), boolean chains 2, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6923c32033657205c44964430585ea8d757cc05e3b104a4d55c201684e9116f"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_blas_inner (cognitive 27): Device::create_blas_inner has cognitive complexity 27 (threshold 15). Drivers by points: if/else 10 (22 pts), loops 2 (4 pts), match/switch 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/ray_tracing.rs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"12eb7b4a60276cf848e430764df056d9a8ddc6029e0b9a359c3b01672faae867"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::maintain (cognitive 27): Device::maintain has cognitive complexity 27 (threshold 15). Drivers by points: if/else 15 (19 pts), match/switch 4 (6 pts), boolean chains 2 (nesting depth added 6). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":938}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f7544b20b8171c5bbdcd305603a58592df92fc2bcd80ece3310453ebe95b71c"}},{"ruleId":"D2","level":"warning","message":{"text":"Interface::new (cognitive 27): Interface::new has cognitive complexity 27 (threshold 15). Drivers by points: if/else 4 (9 pts), match/switch 4 (9 pts), loops 5 (8 pts), boolean chains 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1362}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c6a45011479b1f7d4d7a6d5dd32e794fd002bda219ca810569454e2d00aae3c"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::put_possibly_const_expression (cognitive 26): Writer::put_possibly_const_expression has cognitive complexity 26 (threshold 15). Drivers by points: if/else 5 (15 pts), loops 2 (6 pts), match/switch 3 (5 pts) (nesting depth added 16). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2012}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bea1052dfd81962701feabc2a0efe114ced662a9213bc03a9ac34ec5b9383a1"}},{"ruleId":"D2","level":"warning","message":{"text":"ParsingContext::parse_type_qualifiers (cognitive 26): ParsingContext::parse_type_qualifiers has cognitive complexity 26 (threshold 15). Drivers by points: if/else 7 (20 pts), match/switch 2 (5 pts), loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/types.rs"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"153aef1977ad25699262b468b3b9219051d1d70a178dd6da3b2f27a1002740ea"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::parse (cognitive 26): Frontend::parse has cognitive complexity 26 (threshold 15). Drivers by points: if/else 8 (12 pts), loops 7 (10 pts), match/switch 2 (4 pts) (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1714}}}],"partialFingerprints":{"codehealthFindingId/v1":"3af1dd16fcd09bd2b8eee0026178d8d8751c0a16b2f7ba82bc65d6a810b4d967"}},{"ruleId":"D2","level":"warning","message":{"text":"PhysicalDeviceFeatures::add_to_device_create (cognitive 26): PhysicalDeviceFeatures::add_to_device_create has cognitive complexity 26 (threshold 15). Drivers by points: if/else 26. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"40c51de9c3b46ee56faaa02df4b4abc71befe0e43b331d56e3d0db1c943eb9a0"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_expression_functions (cognitive 25): Writer::write_wrapped_expression_functions has cognitive complexity 25 (threshold 15). Drivers by points: if/else 5 (16 pts), match/switch 3 (8 pts), loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1300}}}],"partialFingerprints":{"codehealthFindingId/v1":"856b5bd143f4496b533a9298562ca1b954f2ca8d50b94676f0dea501135e7ea9"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_ep_output_struct (cognitive 25): Writer::write_ep_output_struct has cognitive complexity 25 (threshold 15). Drivers by points: match/switch 4 (10 pts), if/else 4 (8 pts), loops 3 (7 pts) (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":785}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dd730610576e3043b6633c0eef389b90e6efcdc46357d66e62517a019093a45"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::write_checked_load (cognitive 25): BlockContext::write_checked_load has cognitive complexity 25 (threshold 15). Drivers by points: if/else 8 (13 pts), match/switch 5 (12 pts) (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2856}}}],"partialFingerprints":{"codehealthFindingId/v1":"405fe27bac59687a1a653748ae4672c5f934d7a02ba7ab36602d28fe2b17431a"}},{"ruleId":"D2","level":"warning","message":{"text":"Parser::parse (cognitive 25): Parser::parse has cognitive complexity 25 (threshold 15). Drivers by points: match/switch 4 (13 pts), if/else 4 (10 pts), loops 2 (nesting depth added 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":2242}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1bf0cee46637c6e2b630387315d5b004b2ebd021951be7e87278c3fa4f42e1f"}},{"ruleId":"D2","level":"warning","message":{"text":"Buffer::try_map_async (cognitive 25): Buffer::try_map_async has cognitive complexity 25 (threshold 15). Drivers by points: if/else 17 (20 pts), match/switch 3 (4 pts), boolean chains 1 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba43daaf9b917c530e49f37778d1b8a5c71e736114a8fee030b4d4df2bf5bcf7"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::set_render_pipeline (cognitive 25): CommandEncoder::set_render_pipeline has cognitive complexity 25 (threshold 15). Drivers by points: if/else 11 (17 pts), loops 2 (4 pts), match/switch 4 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1290}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f027471f35a0078bc1fae44483656228cc9116e5d30ce5ff0a330d565f6d52e"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::update_expressions_to_bake (cognitive 24): Writer::update_expressions_to_bake has cognitive complexity 24 (threshold 15). Drivers by points: if/else 6 (17 pts), match/switch 2 (5 pts), loops 2 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":846}}}],"partialFingerprints":{"codehealthFindingId/v1":"f93374896dfb0c8911e67047a492e8d6000c9b6b5800e2ccd407f8a3ddd7cc58"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write (cognitive 24): Writer::write has cognitive complexity 24 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 7, match/switch 1 (2 pts) (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c5ef557e1dd2a6bd90aae4c7a5cdb9343d14ac835af53a79977412aad91da0a"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::matrix_one_arg (cognitive 24): Frontend::matrix_one_arg has cognitive complexity 24 (threshold 15). Drivers by points: if/else 5 (11 pts), match/switch 4 (9 pts), loops 2 (4 pts) (nesting depth added 13). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"c33dd572b5889e4ccbce2e50136c3072f95d949c7ef54117cba06273f298e9f6"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::resolve_overloads (cognitive 24): Lowerer::resolve_overloads has cognitive complexity 24 (threshold 15). Drivers by points: if/else 7 (20 pts), loops 2 (4 pts) (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":4275}}}],"partialFingerprints":{"codehealthFindingId/v1":"73e69139434dd02091b4127a0fab9729561eca7b5fd1ee9653cbb058cbda351e"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::back::pipeline_constants::adjust_expr (cognitive 24): naga::back::pipeline_constants::adjust_expr has cognitive complexity 24 (threshold 15). Drivers by points: if/else 10 (17 pts), match/switch 3 (5 pts), loops 1 (2 pts) (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"086949cb7781b0bd4e64b9e289d8881db1b875066522e12fbbef2cba51795778"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::wgsl::parse::number::parse_hex_float_parts (cognitive 24): naga::front::wgsl::parse::number::parse_hex_float_parts has cognitive complexity 24 (threshold 15). Drivers by points: if/else 7 (8 pts), match/switch 6 (8 pts), loops 4 (5 pts), boolean chains 3 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":436}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc5ee894954db2471de2d205db507a770d6b9acb166431b4e598147464d4dff6"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_bind_group_inner (cognitive 24): Device::create_bind_group_inner has cognitive complexity 24 (threshold 15). Drivers by points: loops 8 (16 pts), match/switch 2 (5 pts), if/else 2 (3 pts) (nesting depth added 12). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":3731}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cc1901dd255e524fb187e7af4c642935503044090f31abe501ec229bf27263c"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_program (cognitive 24): Device::create_program has cognitive complexity 24 (threshold 15). Drivers by points: if/else 9 (12 pts), loops 6 (8 pts), match/switch 2 (4 pts) (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":530}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebcc4438fd2152d270926ef15dc8b7946569c91bdebaf380cfe5658bd229cd22"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::rebind_vertex_data (cognitive 24): CommandEncoder::rebind_vertex_data has cognitive complexity 24 (threshold 15). Drivers by points: if/else 5 (11 pts), match/switch 3 (9 pts), loops 2 (4 pts) (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb1dc4c239a516861b63a353b43f1b6fa7c67d71f96e7f071505fea453a69d11"}},{"ruleId":"D2","level":"warning","message":{"text":"Instance::enumerate_adapters (cognitive 24): Instance::enumerate_adapters has cognitive complexity 24 (threshold 15). Drivers by points: if/else 6 (18 pts), boolean chains 3, loops 1 (2 pts), match/switch 1 (nesting depth added 13). To reduce it, flatten the nesting: this score is depth rather than breadth \u2014 most of its points come from checks stacked inside one another, so the work sits several levels in. Invert each enclosing check into an early exit (a return, or the language\u0027s equivalent) so the happy path stays at one level, and where a level cannot be exited early, lift the block it encloses into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":1156}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb561542622ff83120c7f6d6e490bf86b492137493cd32e9283a9954d80b73e4"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::build_acceleration_structures (cognitive 24): CommandEncoder::build_acceleration_structures has cognitive complexity 24 (threshold 15). Drivers by points: if/else 4 (11 pts), loops 4 (8 pts), match/switch 3 (5 pts) (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/command.rs"},"region":{"startLine":566}}}],"partialFingerprints":{"codehealthFindingId/v1":"75c6b70c17e49b2c21620193fd5104ab870460e1a66fde5ad1bd0dde161a71c4"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::write_access_chain (cognitive 23): BlockContext::write_access_chain has cognitive complexity 23 (threshold 15). Drivers by points: match/switch 6 (14 pts), if/else 5 (8 pts), loops 1 (nesting depth added 11). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2571}}}],"partialFingerprints":{"codehealthFindingId/v1":"008bf43cc9c8ebc422c581abed685383caf700c19d48d9bef0d8abc820a894e1"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_type_declaration_arena (cognitive 23): Writer::write_type_declaration_arena has cognitive complexity 23 (threshold 15). Drivers by points: match/switch 5 (12 pts), if/else 5 (8 pts), loops 1 (3 pts) (nesting depth added 12). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2191}}}],"partialFingerprints":{"codehealthFindingId/v1":"48ae8ad51c58456fec43584bde3425ea888144b71e0b7f86c8e86e03e3c049a8"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::constructor_many (cognitive 23): Frontend::constructor_many has cognitive complexity 23 (threshold 15). Drivers by points: loops 5 (12 pts), if/else 3 (7 pts), match/switch 2 (4 pts) (nesting depth added 13). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"768ce513f72d74117a0ca2ca500b0548904e3212b8eca7e418f6d8f540aec145"}},{"ruleId":"D2","level":"warning","message":{"text":"ParsingContext::parse_postfix (cognitive 23): ParsingContext::parse_postfix has cognitive complexity 23 (threshold 15). Drivers by points: if/else 7 (11 pts), match/switch 4 (11 pts), loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/expressions.rs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"46da25c21ddd76ac96f14e00b26af8e7a281dfd470172a06cca708c46df59cb3"}},{"ruleId":"D2","level":"warning","message":{"text":"ConstantEvaluator::select (cognitive 23): ConstantEvaluator::select has cognitive complexity 23 (threshold 15). Drivers by points: if/else 7 (15 pts), match/switch 4 (8 pts) (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":3700}}}],"partialFingerprints":{"codehealthFindingId/v1":"511b8bf9c97197095ccc28fcd435850a7bdc06f26d46db0fac9a3c1f743cb176"}},{"ruleId":"D2","level":"warning","message":{"text":"Namer::sanitize (cognitive 23): Namer::sanitize has cognitive complexity 23 (threshold 15). Drivers by points: if/else 9 (15 pts), boolean chains 5, match/switch 1 (2 pts), loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/namer.rs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"42e6f86bca9608d0491f3cce3c8662bf31bda41b7c9a2fe8e92250d4083fac6d"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::back::pipeline_constants::filter_emits_in_block (cognitive 23): naga::back::pipeline_constants::filter_emits_in_block has cognitive complexity 23 (threshold 15). Drivers by points: if/else 5 (14 pts), loops 3 (7 pts), match/switch 1 (2 pts) (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":962}}}],"partialFingerprints":{"codehealthFindingId/v1":"931227f4e9088b459f487f940274d407b10e56557f7ca5ecef8f2ce7fe2c2510"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::wgsl::parse::number::convert_hex_float (cognitive 23): naga::front::wgsl::parse::number::convert_hex_float has cognitive complexity 23 (threshold 15). Drivers by points: if/else 12 (21 pts), boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":560}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d549ecf9f460705397ed5452fbcc7dd44d31930f4bc5832d771fc653af0a4c6"}},{"ruleId":"D2","level":"warning","message":{"text":"BakedCommands::initialize_texture_memory (cognitive 23): BakedCommands::initialize_texture_memory has cognitive complexity 23 (threshold 15). Drivers by points: loops 6 (14 pts), if/else 4 (7 pts), match/switch 1 (2 pts) (nesting depth added 12). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/memory_init.rs"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d0465736876fd0716d59acba13be69595f1095cc84d991c3afd28db4aef4f0e"}},{"ruleId":"D2","level":"warning","message":{"text":"Instance::expose_adapter (cognitive 23): Instance::expose_adapter has cognitive complexity 23 (threshold 15). Drivers by points: if/else 9 (12 pts), boolean chains 9, match/switch 2 (nesting depth added 3). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2299}}}],"partialFingerprints":{"codehealthFindingId/v1":"54d9b2edd5d27d5fd65d7ec0ad91ec97ecb748f3367a705baa2249a85da54050"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_hal::gles::egl::choose_config (cognitive 23): wgpu_hal::gles::egl::choose_config has cognitive complexity 23 (threshold 15). Drivers by points: if/else 5 (12 pts), loops 3 (6 pts), match/switch 2 (4 pts), boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"44d8eccb9e0ee48f0771f8362e327043bd23921f4cf73251cd6b260a6e6fde8e"}},{"ruleId":"D2","level":"warning","message":{"text":"deno_webgpu::get_data_slice (cognitive 22): deno_webgpu::get_data_slice has cognitive complexity 22 (threshold 15). Drivers by points: if/else 17 (22 pts) (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/lib.rs"},"region":{"startLine":378}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5ab381a77a3bc4ad8ac4fa3938af50c3faed913da2d1a29849095f22c07eed2"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_math_functions (cognitive 22): Writer::write_wrapped_math_functions has cognitive complexity 22 (threshold 15). Drivers by points: if/else 4 (14 pts), match/switch 2 (7 pts), loops 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1370}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c2d2ec619806b4ab240143cabb6f8b41bdd66917e8cfb7ea50fac3121adf648"}},{"ruleId":"D2","level":"warning","message":{"text":"TypedGlobalVariable::to_parts (cognitive 22): TypedGlobalVariable::to_parts has cognitive complexity 22 (threshold 15). Drivers by points: if/else 8 (13 pts), match/switch 4 (8 pts), boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"71eedb23aa856cae7a2321d871a615a6b9c9aa7b4dd13df7e1412dffc77a7261"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::write_as_expression (cognitive 22): BlockContext::write_as_expression has cognitive complexity 22 (threshold 15). Drivers by points: match/switch 8 (12 pts), if/else 4 (7 pts), loops 1 (2 pts), boolean chains 1 (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2293}}}],"partialFingerprints":{"codehealthFindingId/v1":"30df42c20e34b5b47eb59c128e794da49c7287ad06fab8172cd83d1b4477dc21"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::write_image_query (cognitive 22): BlockContext::write_image_query has cognitive complexity 22 (threshold 15). Drivers by points: match/switch 9 (17 pts), if/else 3 (5 pts) (nesting depth added 10). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"38c6bd0d91c72d87cc721ccf31ef51578b6fffb988476653a7675bb3e81f572d"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::process_lhs_argument (cognitive 22): Frontend::process_lhs_argument has cognitive complexity 22 (threshold 15). Drivers by points: if/else 11 (16 pts), loops 1 (3 pts), match/switch 2 (3 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":873}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dbe759c42ed821cae692443ef4334bb0ac38b83301b927b61392023b05c9be1"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::patch_statements (cognitive 22): Frontend::patch_statements has cognitive complexity 22 (threshold 15). Drivers by points: match/switch 3 (10 pts), loops 3 (7 pts), if/else 1 (5 pts) (nesting depth added 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1584}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b2828e36547efd04ebb94b59cfa3695841bf98ec6dd9fae138ed8d42461d9a3"}},{"ruleId":"D2","level":"warning","message":{"text":"WebCommandEncoder::begin_render_pass (cognitive 22): WebCommandEncoder::begin_render_pass has cognitive complexity 22 (threshold 15). Drivers by points: if/else 9 (15 pts), match/switch 4 (7 pts) (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":3458}}}],"partialFingerprints":{"codehealthFindingId/v1":"93785ce41981e4a40a02ae5ac3266ae3836f510d89e77601df89cbd6e58f0017"}},{"ruleId":"D2","level":"warning","message":{"text":"CoreDevice::create_bind_group (cognitive 22): CoreDevice::create_bind_group has cognitive complexity 22 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 3 (6 pts), match/switch 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1023}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4c3993e26038588ea508b7638e83062e9cf5a39bc1944b3236576c7dc8eb0e0"}},{"ruleId":"D2","level":"warning","message":{"text":"Queue::copy_external_image_to_texture (cognitive 22): Queue::copy_external_image_to_texture has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16 (17 pts), boolean chains 3, loops 1 (2 pts) (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1233}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a174eb7ac3adf230e9a6ffaa1487f55e7c2237b51f18d7c229a01e9f57f2905"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_texture_inner (cognitive 22): Device::create_texture_inner has cognitive complexity 22 (threshold 15). Drivers by points: if/else 6 (10 pts), loops 3 (10 pts), boolean chains 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2019}}}],"partialFingerprints":{"codehealthFindingId/v1":"e496a696cef436b0a8b0b69daed7dafe2b83f7278cc823d64cc9a5fb9b983887"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_texture_view (cognitive 22): Device::create_texture_view has cognitive complexity 22 (threshold 15). Drivers by points: if/else 17 (20 pts), boolean chains 2 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":616}}}],"partialFingerprints":{"codehealthFindingId/v1":"b72e358a62346794afd277362b3aa97ec6c1ebf537a3c2fc370ee2d3b055a9c2"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_hal::vulkan::instance::debug_utils_messenger_callback (cognitive 22): wgpu_hal::vulkan::instance::debug_utils_messenger_callback has cognitive complexity 22 (threshold 15). Drivers by points: if/else 14 (17 pts), boolean chains 4, match/switch 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"f595c727d90f7f2e3555660c0a5a21cc99a9c58edee071d80d6b77c801fc6f43"}},{"ruleId":"D2","level":"warning","message":{"text":"Function::to_words (cognitive 21): Function::to_words has cognitive complexity 21 (threshold 15). Drivers by points: loops 8 (19 pts), if/else 1 (2 pts) (nesting depth added 12). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e6a8e835b9976529d6618f96b9368e8b2ede725b3114a6b5a8e1b65562480c4"}},{"ruleId":"D2","level":"warning","message":{"text":"BlockContext::write_image_sample (cognitive 21): BlockContext::write_image_sample has cognitive complexity 21 (threshold 15). Drivers by points: if/else 11 (15 pts), match/switch 3 (5 pts), boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":803}}}],"partialFingerprints":{"codehealthFindingId/v1":"73c9abc88a18d7328282f4cdfa7fd329336cd23a70c5ba8da71db0af54ac7b76"}},{"ruleId":"D2","level":"warning","message":{"text":"ParsingContext::parse_init_declarator_list (cognitive 21): ParsingContext::parse_init_declarator_list has cognitive complexity 21 (threshold 15). Drivers by points: if/else 9 (14 pts), match/switch 2 (4 pts), boolean chains 2, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddd68a980eb64e51b6a97bdced95c4b55d26de0d2a3221d760ba2ccd38b74269"}},{"ruleId":"D2","level":"warning","message":{"text":"Queue::write_texture_inner (cognitive 21): Queue::write_texture_inner has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12 (13 pts), loops 3 (7 pts), boolean chains 1 (nesting depth added 5). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":966}}}],"partialFingerprints":{"codehealthFindingId/v1":"9efb9651b808ad09c4089eec7b46510dafc6cc893933216f2b866c0651e193c5"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::device::surface_config::validate_surface_configuration (cognitive 21): wgpu_core::device::surface_config::validate_surface_configuration has cognitive complexity 21 (threshold 15). Drivers by points: if/else 10 (13 pts), match/switch 2 (4 pts), boolean chains 2, loops 1 (2 pts) (nesting depth added 6). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/surface_config.rs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"bda50b85a7c3c2d70106b224cc175d2e69149328d1862ce66308dec3f99298fc"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_texture_view (cognitive 21): Device::create_texture_view has cognitive complexity 21 (threshold 15). Drivers by points: if/else 14, match/switch 2 (4 pts), boolean chains 3 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":656}}}],"partialFingerprints":{"codehealthFindingId/v1":"72ed05ce46e4d4adbaf7199f15c9f86252ec3c7c4e816ac7c84df15e7cd21742"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::update_bind_group_state (cognitive 21): CommandEncoder::update_bind_group_state has cognitive complexity 21 (threshold 15). Drivers by points: if/else 4 (9 pts), loops 4 (6 pts), match/switch 5 (6 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"73f974c0ace64e621767bcbbc4d016507656f96912f96c4612cb5251ae4ef456"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_hal::auxil::dxgi::hdr::output_desc1_from_factory (cognitive 21): wgpu_hal::auxil::dxgi::hdr::output_desc1_from_factory has cognitive complexity 21 (threshold 15). Drivers by points: match/switch 5 (14 pts), if/else 2 (4 pts), loops 2 (3 pts) (nesting depth added 12). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/dxgi/hdr.rs"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b64a4722c6392f9c90b695fb3472467ef94dcc6d7b71a7da7a53556aa3788a5"}},{"ruleId":"D2","level":"warning","message":{"text":"RequestAdapterError::fmt (cognitive 21): RequestAdapterError::fmt has cognitive complexity 21 (threshold 15). Drivers by points: if/else 11 (18 pts), loops 1 (2 pts), match/switch 1 (nesting depth added 8). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/adapter.rs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fd66724656b9181a079302bf6b19677f8a9bd8e9a78124f1351e4098bc98b01"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_cast_functions (cognitive 20): Writer::write_wrapped_cast_functions has cognitive complexity 20 (threshold 15). Drivers by points: if/else 4 (11 pts), match/switch 2 (6 pts), boolean chains 2, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1752}}}],"partialFingerprints":{"codehealthFindingId/v1":"241723a8c84041ebaa7e2483954779374312001e52fe1022f7e75f7b8e20eb98"}},{"ruleId":"D2","level":"warning","message":{"text":"Options::resolve_local_binding (cognitive 20): Options::resolve_local_binding has cognitive complexity 20 (threshold 15). Drivers by points: if/else 5 (13 pts), match/switch 3 (5 pts), boolean chains 2 (nesting depth added 10). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f8b4c0538d9efae81b00c3790a462208353f09fde810547dbfe311cea843109"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::make_scalar (cognitive 20): Writer::make_scalar has cognitive complexity 20 (threshold 15). Drivers by points: if/else 8 (17 pts), match/switch 2 (3 pts) (nesting depth added 10). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1947}}}],"partialFingerprints":{"codehealthFindingId/v1":"724e562b1cab7cdc10a23676eb8cdf09af747008c512037cd71419392523d801"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::coordinate_components (cognitive 20): Frontend::coordinate_components has cognitive complexity 20 (threshold 15). Drivers by points: match/switch 5 (10 pts), if/else 6 (9 pts), boolean chains 1 (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":2113}}}],"partialFingerprints":{"codehealthFindingId/v1":"c28c6d914228f2105e6bce41f0f6bafb917c6f8dd7b7bb10cf227368cb40b6fb"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_possibly_const_expression (cognitive 19): Writer::write_possibly_const_expression has cognitive complexity 19 (threshold 15). Drivers by points: if/else 7 (14 pts), match/switch 2 (3 pts), loops 1 (2 pts) (nesting depth added 9). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1408}}}],"partialFingerprints":{"codehealthFindingId/v1":"81a2efeeecd8a85493af3136464a3d23588b534286fad08dbff44939f5c5a291"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::parse_execution_mode (cognitive 19): Frontend::parse_execution_mode has cognitive complexity 19 (threshold 15). Drivers by points: if/else 9 (18 pts), match/switch 1 (nesting depth added 9). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1954}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a9a8d14cf3d766296f0691becc0d95e0aad9b201321f4db03a5ca00da3d29ae"}},{"ruleId":"D2","level":"warning","message":{"text":"Module::uses_mesh_shaders (cognitive 19): Module::uses_mesh_shaders has cognitive complexity 19 (threshold 15). Drivers by points: if/else 4 (10 pts), loops 4 (7 pts), match/switch 1 (2 pts) (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/mod.rs"},"region":{"startLine":920}}}],"partialFingerprints":{"codehealthFindingId/v1":"fab569be04ae4084dc213bc957a8a01b2be4034387371d532289258eef195f24"}},{"ruleId":"D2","level":"warning","message":{"text":"VertexLimits::new (cognitive 19): VertexLimits::new has cognitive complexity 19 (threshold 15). Drivers by points: if/else 7 (16 pts), match/switch 1 (2 pts), loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":442}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae97d9b5754d38bc0dc8a9db9d73f8ca639a652684147695a9b2fcfe73a13af9"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_info::human::print_adapter (cognitive 19): wgpu_info::human::print_adapter has cognitive complexity 19 (threshold 15). Drivers by points: if/else 7 (11 pts), loops 6 (8 pts) (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-info/src/human.rs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff0052209b394dc42bc2eea52cca701f49de6bda042cf94598d5b35e4f711a4a"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::collect_reflection_info (cognitive 18): Writer::collect_reflection_info has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 4 (10 pts), if/else 3 (6 pts), loops 2 (nesting depth added 9). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":4522}}}],"partialFingerprints":{"codehealthFindingId/v1":"1341d228865ed60cbf6fd71f070e59b36cccac529252dd68206dd460468d1352"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write (cognitive 18): Writer::write has cognitive complexity 18 (threshold 15). Drivers by points: if/else 5 (6 pts), loops 3 (5 pts), boolean chains 4, match/switch 1 (3 pts) (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":4561}}}],"partialFingerprints":{"codehealthFindingId/v1":"e866f6d282c97033c820cecad95e0e4a82bc33281d778ab6bd0d8454119cbddb"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_wrapped_math_function (cognitive 18): Writer::write_wrapped_math_function has cognitive complexity 18 (threshold 15). Drivers by points: if/else 7 (13 pts), match/switch 3 (5 pts) (nesting depth added 8). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6166}}}],"partialFingerprints":{"codehealthFindingId/v1":"85a9e3d3bffa49e36b8b533e24b4d623b08b8fb358cab87fd0c1cd509b8d40b9"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_block_handles (cognitive 18): Validator::validate_block_handles has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 5 (9 pts), loops 3 (6 pts), if/else 2 (3 pts) (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"351f3d3e36ca70852c0357dc493dd26dfbe60890dd5f54a4e6e021e9771adaf7"}},{"ruleId":"D2","level":"warning","message":{"text":"Validator::validate_impl (cognitive 18): Validator::validate_impl has cognitive complexity 18 (threshold 15). Drivers by points: loops 8 (11 pts), match/switch 2 (4 pts), if/else 2 (3 pts) (nesting depth added 6). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3c577c65c8be90f223852034eeb93b1c53d58409105102a9cb2a5788a8fdff7"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::types::parse_type (cognitive 18): naga::front::glsl::types::parse_type has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 8 (15 pts), if/else 2 (3 pts) (nesting depth added 8). Of this number, 14 points are the body\u0027s own statements and 4 belong to 2 function items inside it that branch. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/types.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"5404be3a556dbd90dffde70a1ab5de0aa839f378d999d52a2842d63c1163e6c9"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::front::glsl::offset::calculate_offset (cognitive 18): naga::front::glsl::offset::calculate_offset has cognitive complexity 18 (threshold 15). Drivers by points: if/else 6 (13 pts), match/switch 2 (3 pts), loops 1 (2 pts) (nesting depth added 9). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/offset.rs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2db94e81a6bc3776fd7ce4df9ab7adf8f2bea36e1045467638645a4443060aa"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::encode_commands (cognitive 18): CommandEncoder::encode_commands has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 4 (11 pts), if/else 5 (6 pts), loops 1 (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":1085}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4631e4c1272ad7782f1a53934965f314a2923526c7e08263cff0c4c53f7c9e0"}},{"ruleId":"D2","level":"warning","message":{"text":"InitTrackerDrain::next (cognitive 18): InitTrackerDrain::next has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11 (17 pts), boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/init_tracker/mod.rs"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a411d00b88edf23690e12d9246c932b722a5a5b1a07d0bb93c9a6f48f666044"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::command::transfer::copy_texture_to_texture (cognitive 18): wgpu_core::command::transfer::copy_texture_to_texture has cognitive complexity 18 (threshold 15). Drivers by points: if/else 12 (13 pts), boolean chains 5 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/transfer.rs"},"region":{"startLine":1453}}}],"partialFingerprints":{"codehealthFindingId/v1":"53c53b571f82243c723ef738545d155d54c027bd80b1e37ec323610e830287a5"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::update_root_elements (cognitive 18): CommandEncoder::update_root_elements has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 7 (11 pts), loops 3 (7 pts) (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"65c8865f30bbfc66d770e25f1f7846e99850ba48fc0bbecc0998d50e264d1b8a"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::begin_render_pass (cognitive 18): CommandEncoder::begin_render_pass has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11 (17 pts), loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/command.rs"},"region":{"startLine":824}}}],"partialFingerprints":{"codehealthFindingId/v1":"41b544a6bfe3e73ef850def27f563f2403da79d374be109c72d10d851c5c1c2c"}},{"ruleId":"D2","level":"warning","message":{"text":"PrivateCapabilities::map_texture_format (cognitive 18): PrivateCapabilities::map_texture_format has cognitive complexity 18 (threshold 15). Drivers by points: if/else 7 (10 pts), match/switch 5 (8 pts) (nesting depth added 6). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/conv.rs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"3817f678a36aa7ff182d8db4d090dd4eb663ab8305ab4ae6d5387bc8a2574215"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_xtask::vendor_web_sys::run_vendor_web_sys (cognitive 18): wgpu_xtask::vendor_web_sys::run_vendor_web_sys has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11 (15 pts), loops 2, match/switch 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"xtask/src/vendor_web_sys.rs"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9d94fb141ade37fca450b4ce3b1dd0c4be4004180447ec4590014183515613c"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::fill_access_chain (cognitive 17): Writer::fill_access_chain has cognitive complexity 17 (threshold 15). Drivers by points: match/switch 4 (9 pts), if/else 2 (7 pts), loops 1 (nesting depth added 10). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d45390f4dbc1bce97037745039370cd5d6edd2635e8f341725a4412a590a4b8"}},{"ruleId":"D2","level":"warning","message":{"text":"ModuleTracer::type_expression_tandem (cognitive 17): ModuleTracer::type_expression_tandem has cognitive complexity 17 (threshold 15). Drivers by points: if/else 3 (7 pts), loops 4 (5 pts), match/switch 2 (5 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/mod.rs"},"region":{"startLine":473}}}],"partialFingerprints":{"codehealthFindingId/v1":"a55e11ca8cb5b04d210bf30ee002d6c3ee7d4f27b0325c2ac3850724e9c73295"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::constructor_single (cognitive 17): Frontend::constructor_single has cognitive complexity 17 (threshold 15). Drivers by points: if/else 7 (13 pts), match/switch 3, boolean chains 1 (nesting depth added 6). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"90782374cddfa39d4b30694ba95922416073f1d5b5ad2f031ba148be49a7ce64"}},{"ruleId":"D2","level":"warning","message":{"text":"ParsingContext::parse_layout_qualifier_id (cognitive 17): ParsingContext::parse_layout_qualifier_id has cognitive complexity 17 (threshold 15). Drivers by points: if/else 4 (9 pts), match/switch 3 (8 pts) (nesting depth added 10). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/types.rs"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"4787d2ceb478bded04e4ad3f90718ace90d6300d5549bd226d68b180034ec182"}},{"ruleId":"D2","level":"warning","message":{"text":"Lowerer::finalize_type (cognitive 17): Lowerer::finalize_type has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (14 pts), match/switch 2 (3 pts) (nesting depth added 10). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":2818}}}],"partialFingerprints":{"codehealthFindingId/v1":"23d2a37f50f176a3a605475f646422df411c5704c2dbfeaef9d9c95189d11c5d"}},{"ruleId":"D2","level":"warning","message":{"text":"BakedCommands::initialize_buffer_memory (cognitive 17): BakedCommands::initialize_buffer_memory has cognitive complexity 17 (threshold 15). Drivers by points: if/else 3 (6 pts), loops 4 (6 pts), match/switch 2 (5 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/memory_init.rs"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ebec3c5fb2a2c1f6b2347f70a80c1eadae9d1a86b22202f41fabb704a2c0f79"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::create_buffer_binding (cognitive 17): Device::create_buffer_binding has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11 (13 pts), match/switch 3, boolean chains 1 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":3267}}}],"partialFingerprints":{"codehealthFindingId/v1":"944fce137c502d03adfd6029468ab8e2d2d6b7771e13eb1f6d43be7793c20304"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::command::render::multi_draw_indirect (cognitive 17): wgpu_core::command::render::multi_draw_indirect has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8 (11 pts), boolean chains 2, loops 1 (2 pts), match/switch 2 (nesting depth added 4). Of this number, 16 points are the body\u0027s own statements and 1 belongs to one function item inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":3211}}}],"partialFingerprints":{"codehealthFindingId/v1":"a73a09c117139e89d13c07659d9a2cfbc248b1c55bba1f9ca5b17af7cc2393aa"}},{"ruleId":"D2","level":"warning","message":{"text":"Surface::configure (cognitive 17): Surface::configure has cognitive complexity 17 (threshold 15). Drivers by points: if/else 4 (9 pts), match/switch 5 (7 pts), loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"1135063f9466eb3ad56f182fc19853a05111e1c6c4f823b6f56bed83f74518cc"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandEncoder::set_immediates (cognitive 17): CommandEncoder::set_immediates has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9 (17 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1201}}}],"partialFingerprints":{"codehealthFindingId/v1":"5176fd93dddfdaf593cae3fac05ac9740307e60525b25918ead9518c60f6786f"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_hal::dx12::adapter::get_adapter_pci_info (cognitive 17): wgpu_hal::dx12::adapter::get_adapter_pci_info has cognitive complexity 17 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 1, match/switch 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":1410}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcbd5385710bb95398d301a481e738d0c92166568ae3d93cd9894f2dfea574c8"}},{"ruleId":"D2","level":"warning","message":{"text":"ShaderStagesBits::write_hex (cognitive 17): ShaderStagesBits::write_hex has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (7 pts), loops 2 (6 pts), boolean chains 4 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/binding.rs"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7e60c6f56acf2948043f532dbf3d54d227fed0633ca89c5ad9a465cf8b260e9"}},{"ruleId":"D2","level":"warning","message":{"text":"BufferUsagesBits::write_hex (cognitive 17): BufferUsagesBits::write_hex has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (7 pts), loops 2 (6 pts), boolean chains 4 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/buffer.rs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c0ca009296bbb6b4e88b442521add85e444fdeb2e92a3c8e5fec341f8128ea2"}},{"ruleId":"D2","level":"warning","message":{"text":"FeatureBits::write_hex (cognitive 17): FeatureBits::write_hex has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (7 pts), loops 2 (6 pts), boolean chains 4 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/features.rs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"25c2534892d0d8d4cf8eb327e8d6eb157e7a24af310f474c0ef888c07e87c132"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::write_global_layout (cognitive 16): Writer::write_global_layout has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (12 pts), match/switch 2 (4 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":631}}}],"partialFingerprints":{"codehealthFindingId/v1":"75115ac1f20514e9d7946b7036b7c3dd89f7203de1beb472a51ccf0b0a190603"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::update_expressions_to_bake (cognitive 16): Writer::update_expressions_to_bake has cognitive complexity 16 (threshold 15). Drivers by points: if/else 4 (9 pts), match/switch 2 (6 pts), loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3700}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7b40d26a767a3083583add6d00cc7369d6047a50348e262f154a3353e076054"}},{"ruleId":"D2","level":"warning","message":{"text":"Writer::request_type_capabilities (cognitive 16): Writer::request_type_capabilities has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (11 pts), match/switch 3 (5 pts) (nesting depth added 7). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2003}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c52237548eccd96b2fe9e238770b63c1f00d6f302c93f940e8aa8f1a305c5c6"}},{"ruleId":"D2","level":"warning","message":{"text":"Frontend::parse_image_load (cognitive 16): Frontend::parse_image_load has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (7 pts), match/switch 3 (5 pts), loops 2 (4 pts) (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":366}}}],"partialFingerprints":{"codehealthFindingId/v1":"75ced518291d5583f43baffea012c22cbd122bdb7438c0f58d98fe701e4da682"}},{"ruleId":"D2","level":"warning","message":{"text":"ConstantEvaluator::unary_op (cognitive 16): ConstantEvaluator::unary_op has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 6 (14 pts), loops 1 (2 pts) (nesting depth added 9). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2800}}}],"partialFingerprints":{"codehealthFindingId/v1":"751e172f41eee9bbc8bd5b04bfe260674783e96232651d6161794ea3d81d1fb7"}},{"ruleId":"D2","level":"warning","message":{"text":"FunctionInfo::process_call (cognitive 16): FunctionInfo::process_call has cognitive complexity 16 (threshold 15). Drivers by points: if/else 4 (8 pts), match/switch 3 (6 pts), loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":439}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8ab111d308ad8877ac6d1e11247afafadfa20cd32c7814f2da35f16c56f6a49"}},{"ruleId":"D2","level":"warning","message":{"text":"naga::proc::index::oob_local_types (cognitive 16): naga::proc::index::oob_local_types has cognitive complexity 16 (threshold 15). Drivers by points: if/else 3 (8 pts), loops 2 (4 pts), match/switch 1 (4 pts) (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/index.rs"},"region":{"startLine":413}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d4d5a9fe85898d54da642f1e982844200354202a056ed9bf9bf21850f3c77d2"}},{"ruleId":"D2","level":"warning","message":{"text":"Player::process (cognitive 16): Player::process has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10 (15 pts), match/switch 1 (nesting depth added 5). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca678bb6a2e912721540864184bd3ccbee5dfee624e368bd1dbb6bfd6ca3ccc6"}},{"ruleId":"D2","level":"warning","message":{"text":"BindGroupLayoutEntry::try_into (cognitive 16): BindGroupLayoutEntry::try_into has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11 (16 pts) (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/binding_model.rs"},"region":{"startLine":1046}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a4584cd051e93a12b14130aef31513d292685c0801f299244d48eb753b2ba78"}},{"ruleId":"D2","level":"warning","message":{"text":"InitTracker::discard (cognitive 16): InitTracker::discard has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8 (16 pts) (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/init_tracker/mod.rs"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"44e938f4786f05a006717c9968bd4715d3ffd100a9141447a42155b6158f4276"}},{"ruleId":"D2","level":"warning","message":{"text":"Resource::derive_binding_type (cognitive 16): Resource::derive_binding_type has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 6 (13 pts), if/else 2 (3 pts) (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":882}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb26b249a1b180e3c62ef4488fa752eeba868c08b86f6120ea3c27a5dd095153"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_core::command::clear::clear_texture_via_buffer_copies (cognitive 16): wgpu_core::command::clear::clear_texture_via_buffer_copies has cognitive complexity 16 (threshold 15). Drivers by points: loops 4 (10 pts), if/else 4 (5 pts), boolean chains 1 (nesting depth added 7). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/clear.rs"},"region":{"startLine":400}}}],"partialFingerprints":{"codehealthFindingId/v1":"99e30ba670142294b7dd47497d6634a95bd50bc3b7bff1da56022a6a237d5f11"}},{"ruleId":"D2","level":"warning","message":{"text":"CompilationContext::consume_reflection (cognitive 16): CompilationContext::consume_reflection has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 4 (8 pts), if/else 3 (5 pts), loops 3 (nesting depth added 6). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"afd980a3afcdda9dbbd2dab148b2060f260fcc9cb28680fbf4f9af448eaaff0e"}},{"ruleId":"D2","level":"warning","message":{"text":"Surface::configure (cognitive 16): Surface::configure has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8 (12 pts), match/switch 3, boolean chains 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/surface.rs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"55e593c9a1901c27ce1ff2d5bff9ea85f6eda027e3bfc71a71c7830861eed180"}},{"ruleId":"D2","level":"warning","message":{"text":"Device::compile_stage (cognitive 16): Device::compile_stage has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10 (13 pts), match/switch 2, boolean chains 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":733}}}],"partialFingerprints":{"codehealthFindingId/v1":"b095af717b560811a092570232aed149bbd5282956cc3d2ea9d5b5b2ef114004"}},{"ruleId":"D2","level":"warning","message":{"text":"wgpu_info::cli::main (cognitive 16): wgpu_info::cli::main has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10 (11 pts), loops 2 (3 pts), match/switch 2 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-info/src/cli.rs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"4eefe650cf94050b1f14d1c44d8ddfb12b60015e109c2b4aed85867515b323c6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.next_block: MethodTooLong \u2014 next_block runs 2229 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 2129 over it, 22.29\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba167eef3973d7b4575383d2a2768bc016020d4097b97ad29b752bcd6a4de102"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Queue.process: MethodTooLong \u2014 process runs 1310 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 1210 over it, 13.10\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"30f118735ec5fc59b685e9eed41c549aedd69a7a187d29e0eb4f277804d79830"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: msl/writer.rs: FileTooLong \u2014 6079 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 5579 over it, 12.16\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1381fadcd7408a812d3e13f16f596deba658f556f45ca84cb93ceff277fe239c"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Device: ClassTooLong \u2014 3634 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 101 methods, 6 blocks, lines 232-5884. The bar is 400 significant lines; this is 3234 over it, 9.09\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d1161ade5915266f6454bbc25be73264f01b4f15b809710bb3a29e5a9f8da95"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Error.as_parse_error: MethodTooLong \u2014 as_parse_error runs 813 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 713 over it, 8.13\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":678}}}],"partialFingerprints":{"codehealthFindingId/v1":"556e23c62bf6e8298cd70fb2d7ec64dc31d6c35e7d247aad1a31719a91525df2"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: device/resource.rs: FileTooLong \u2014 3749 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 97% of them inside a single declaration: Device (6 blocks, 232-5884). The bar is 500 significant lines; this is 3249 over it, 7.50\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fda22d8d76bd81be79d1a188f394c584905aa981f9421ce8ac6a03a7cc94001"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_expression: MethodTooLong \u2014 validate_expression runs 741 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 641 over it, 7.41\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":382}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0e82ac8250c9a18cbd817e797ae06dca855b342b6aff9bd84666c8722264b68"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_block_impl: MethodTooLong \u2014 validate_block_impl runs 734 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 634 over it, 7.34\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":789}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a9447cacf412117f4296d6744c76d6ae69e39c887620e7acccd5ef1cf543bd0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: hlsl/writer.rs: FileTooLong \u2014 3528 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 94% of them inside a single declaration: Writer (154-4943). The bar is 500 significant lines; this is 3028 over it, 7.06\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b76253850a6c900040e7f9cac8ecaa797ce6ba04b881bd07b83d007f488ef747"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_expr: MethodTooLong \u2014 write_expr runs 668 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 568 over it, 6.68\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3729}}}],"partialFingerprints":{"codehealthFindingId/v1":"77318b820ae306002a633cdbc3a4e174cdb29581e6a80c60b3cdb5d65d621ecf"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Global: TooManyMethods \u2014 197 methods, declared across 8 files: global/device.rs (71), global/mod.rs (42), global/render_pass.rs (26), global/compute_pass.rs (15), \u002B4 more file(s). The bar is 30 methods; this is 167 over it, 6.57\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core-remote/src/global/mod.rs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bdc569a2b56941ad125ca646716cc0d66150becf8f3af9526ece16cee5e03fe"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: lower/mod.rs: FileTooLong \u2014 3283 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 78% of them inside a single declaration: Lowerer (2 blocks, 1264-5076). The bar is 500 significant lines; this is 2783 over it, 6.57\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"00fec5d6e23ccdb2fe97adca872ef47f7977da5b89bcb28b5cd5141ad1c0edae"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.call_builtin: MethodTooLong \u2014 call_builtin runs 651 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 551 over it, 6.51\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3094}}}],"partialFingerprints":{"codehealthFindingId/v1":"77db22352353e0e9a64d756934fafca28307d15fbb7dece8c584b4767d965624"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Adapter.expose: MethodTooLong \u2014 expose runs 649 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 549 over it, 6.49\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fb9b71f5a7ef690c6bfe370fe7999e0e750acffa92d91b372f58071410c020e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_stmt: MethodTooLong \u2014 write_stmt runs 645 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 545 over it, 6.45\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2198}}}],"partialFingerprints":{"codehealthFindingId/v1":"50852f1408f7e6eec75323cf12c4b213c793d2a694373a1eb918d8a9bd8b5542"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Lowerer: ClassTooLong \u2014 2559 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 37 methods, 2 blocks, lines 1264-5076. The bar is 400 significant lines; this is 2159 over it, 6.40\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1264}}}],"partialFingerprints":{"codehealthFindingId/v1":"45256a02a83230d405da5cb73fc704fcc6736a168282ba7d6cab0f89b0662994"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: command/render.rs: FileTooLong \u2014 3104 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 2604 over it, 6.21\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5f6830799dbc25773082ae6b6f5521e6641a8881e44dd68d00c9209ff47daf6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_render_pipeline_or_error_inner: MethodTooLong \u2014 create_render_pipeline_or_error_inner runs 612 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 512 over it, 6.12\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4655}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff3d620d7470d0c71dbee7d13631b41f0264bfda4018aaf9679bdb755f0e9bb1"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: backend/webgpu.rs: FileTooLong \u2014 3042 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), declaring 54 free functions. The bar is 500 significant lines; this is 2542 over it, 6.08\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9096c888a0e9d5d688514cc4ba071c66b1ec2075889cb1799a4f296a23b230f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/block.rs: FileTooLong \u2014 2872 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 2372 over it, 5.74\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e46283c83575a57b8fbacbde10b55395166049d95d9195b497a3538fb1c90a4"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: proc/constant_evaluator.rs: FileTooLong \u2014 2843 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 70% of them inside a single declaration: ConstantEvaluator (2 blocks, 683-3816). The bar is 500 significant lines; this is 2343 over it, 5.69\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a6c87420d6c5586d112a86e25e3e479a929ea0d3eccf07dee1d2b0a38fd20ca"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Adapter.expose: MethodTooLong \u2014 expose runs 568 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 468 over it, 5.68\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3cd1b65f0b3c201850d2a1e81652697ab9b99269d80c3bb9c92a8b0096d326d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: glsl/writer.rs: FileTooLong \u2014 2819 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 2319 over it, 5.64\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"564e77673f77c5be9ed3f13de7e15b92abe013a169dc58df9547d6e004f61992"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Context.lower_inner: MethodTooLong \u2014 lower_inner runs 544 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 444 over it, 5.44\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b00daef463935ccc32541c6c93a927c3e7527a23ed885e5717aa5642a85d1b7"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/writer.rs: FileTooLong \u2014 2694 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 98% of them inside a single declaration: Writer (68-4027). The bar is 500 significant lines; this is 2194 over it, 5.39\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb95568f1a4b01645c16b03f9e481fdc879d0999ad72a8917a390ec027532a5e"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ConstantEvaluator: ClassTooLong \u2014 1979 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 43 methods, 2 blocks, lines 683-3816. The bar is 400 significant lines; this is 1579 over it, 4.95\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":683}}}],"partialFingerprints":{"codehealthFindingId/v1":"965fcfa87c8c580823bdfc86ff5523f754175e5955e97d3dff0697063dc49c61"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/resource.rs: FileTooLong \u2014 2355 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1855 over it, 4.71\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"297927f4a5a6610b0894c885eed1152e75367cd9c0399a96be27470271365990"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: vulkan/adapter.rs: FileTooLong \u2014 2318 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1818 over it, 4.64\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c31477b2e235820426635a0b780a567156d10bb0935d7933e716f41ff1e53536"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/next_block.rs: FileTooLong \u2014 2257 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 99% of them inside a single declaration: Frontend (15-3107). The bar is 500 significant lines; this is 1757 over it, 4.51\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"55d6ce7cbe1d3b7b340299c55614bbee0b296bd5353f6fb5ca43db3e0fd1d682"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: VaryingContext.validate_impl: MethodTooLong \u2014 validate_impl runs 446 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 346 over it, 4.46\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"8955eadbc7c4f71046b59815587523582429bbd64a282811e5e07b3920914f1a"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Frontend: ClassTooLong \u2014 1780 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 69 methods, 2 blocks, lines 612-3221. The bar is 400 significant lines; this is 1380 over it, 4.45\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":612}}}],"partialFingerprints":{"codehealthFindingId/v1":"86323a20349521bbf6941ec26cb4f3ec1c0ea941b809d91e2ee862d177fd5d04"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: vulkan/device.rs: FileTooLong \u2014 2203 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 88% of them inside a single declaration: Device (2 blocks, 302-3092). The bar is 500 significant lines; this is 1703 over it, 4.41\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e25c4beba149b7f7c7252900bed3db0c6d5ab1ba7217f0bdd6aa85be3fe3c498"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_math_expression: MethodTooLong \u2014 write_math_expression runs 429 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 329 over it, 4.29\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3078}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9b3df0f851c38dc56f883ac5070ed74f32ce28475e2285246fd40854dbef1ca"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/mod.rs: FileTooLong \u2014 2136 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 83% of them inside a single declaration: Frontend (2 blocks, 612-3221). The bar is 500 significant lines; this is 1636 over it, 4.27\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"da6d9effe584ce4313d87e00148d5599565f229edd18c8ef270b136e03ae46f8"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ResolveContext.resolve: MethodTooLong \u2014 resolve runs 419 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 319 over it, 4.19\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/typifier.rs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2a1cfb11388769d56f13f1e7b8c02b0a8dd3f4eb8267d4ff61cc20cd5ddc12c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ConstantEvaluator.math: MethodTooLong \u2014 math runs 418 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 318 over it, 4.18\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1489}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5b0d7ba3f3a814b9961f3a6d2cbe4c8c6ad18116adcbfccf63f6c190690925b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: backend/wgpu_core.rs: FileTooLong \u2014 1991 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1491 over it, 3.98\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9598480bc6bc4b81279f5102e586b24eff93d033c395c7caceb3f33c24b4501"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::glsl::builtins::inject_standard_builtins: FunctionTooLong \u2014 naga::front::glsl::builtins::inject_standard_builtins runs 398 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 298 over it, 3.98\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d16750903f28e91aab0ff856466705d1f1b21c3f1c3d5191374bf334ede415e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_pipeline_layout: MethodTooLong \u2014 create_pipeline_layout runs 397 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 297 over it, 3.97\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":970}}}],"partialFingerprints":{"codehealthFindingId/v1":"40b0169d9ac7b355123f3941f8f89a29b0e2ec70715e9952fcabe5f93ab64537"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_type: MethodTooLong \u2014 validate_type runs 396 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 296 over it, 3.96\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9b7b012de63da9299d41fb73c1763e6653bc8102a48dfda912bd59119583792"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_expr_plain_form: MethodTooLong \u2014 write_expr_plain_form runs 391 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 291 over it, 3.91\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1502}}}],"partialFingerprints":{"codehealthFindingId/v1":"29b98fd94c554ff31f55338439ab813ea790632311b9b1d1295e276e4c89cf0f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dx12/device.rs: FileTooLong \u2014 1911 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 99% of them inside a single declaration: Device (2 blocks, 40-2787). The bar is 500 significant lines; this is 1411 over it, 3.82\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff872b2bd817a6d6579194ea3a31dbc80c1d8500969f06c3ce7c6ba1f1a7813f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: RenderPassInfo.start: MethodTooLong \u2014 start runs 382 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 282 over it, 3.82\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1218}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d9c83372fda08bd9611a3174d617b725f393c797bfa68158e044ae97c3d22eb"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.statement: MethodTooLong \u2014 statement runs 381 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 281 over it, 3.81\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1794}}}],"partialFingerprints":{"codehealthFindingId/v1":"776277e782090235deae6386e746d2bfd4e5c5722cf630184f528aece5bb3146"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_ray_query_get_intersection_function: MethodTooLong \u2014 write_ray_query_get_intersection_function runs 379 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 279 over it, 3.79\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/query.rs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca7e9859466ff23c7800f4b153141b82ef2a252d0a9129d0a49a41156b658a60"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_function: MethodTooLong \u2014 write_function runs 373 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 273 over it, 3.73\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1260}}}],"partialFingerprints":{"codehealthFindingId/v1":"478aec05f6abc595861155608c9b7de71834242d22aebb55001b3119f5e956cc"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::command::render::encode_render_pass: FunctionTooLong \u2014 wgpu_core::command::render::encode_render_pass runs 373 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 273 over it, 3.73\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":2264}}}],"partialFingerprints":{"codehealthFindingId/v1":"45733add7c12c29880e140e3d6bfb42b035f0da7f3049d240541a36565becaa1"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CapabilitiesQuery.new: MethodTooLong \u2014 new runs 369 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 269 over it, 3.69\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":675}}}],"partialFingerprints":{"codehealthFindingId/v1":"b795818a923a1be2f8e40ff021696cd54ab077a7c7b59606d799164bf8597a80"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_stmt: MethodTooLong \u2014 write_stmt runs 366 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 266 over it, 3.66\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"66b3e97f237455aace790a235740d501f1fdba2fb6ed7b496dd5c48b741f862d"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: MacroCall.call: MethodTooLong \u2014 call runs 365 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 265 over it, 3.65\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1588}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d3059d7ee90d435d418b16af9588a7af2b4564c87b1874882bbc39596fede65"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Instruction: TooManyMethods \u2014 108 methods, declared across 2 files: spv/instructions.rs (102), spv/layout.rs (6). The bar is 30 methods; this is 78 over it, 3.60\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mod.rs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"57dd14a5e58d22b5e2c0b682afcbfa46e2b2d2fe64e971025812ffce8eacedc4"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFields: CapabilitiesQuery: TooManyFields \u2014 107 stored fields beside 7 methods. The bar is 30 stored fields; this is 77 over it, 3.57\u00D7 the bar. This is width in DATA, not behaviour: every reader that takes the whole type couples to all of its fields, so a change to any one of them is a change every reader has to be checked against. To reduce it, group the fields that are read together by the same callers into a smaller type of their own, and have this one hold that type as a single member \u2014 each reader then names only the group it uses."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/mod.rs"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"351ae4a55a85cfaf1ab34b98a7c2a8f00b3b92a82c4e858bbaa067ebe516903d"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ParsingContext.parse_statement: MethodTooLong \u2014 parse_statement runs 350 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 250 over it, 3.50\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/functions.rs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"29c8e7617c423e48f1126aa1c188fa461fc9120dff69cb71f45a6ae6b7293327"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Interface.check_stage: MethodTooLong \u2014 check_stage runs 348 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 248 over it, 3.48\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1563}}}],"partialFingerprints":{"codehealthFindingId/v1":"78eb73f3920c197f92ac59c7a835564ec058a091b2b305ff0cb2cdcbe0215402"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Writer: ClassTooLong \u2014 1363 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 24 methods, 2 blocks, lines 82-2141. The bar is 400 significant lines; this is 963 over it, 3.41\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"81c0fb438c33f3198a55979201123e492cb47b0f5f346b1a354dadeac912604c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Device: TooManyMethods \u2014 101 methods, declared across 4 files: device/resource.rs (87), src/error.rs (8), device/ray_tracing.rs (4), src/as_hal.rs (2). The bar is 30 methods; this is 71 over it, 3.37\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bd4bbe3f6e62d84c7af36781ba6fa42334d573131d43a2f45e9a5be138f22c5"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Writer: TooManyMethods \u2014 98 methods, declared across 5 files: hlsl/writer.rs (42), hlsl/help.rs (34), hlsl/ray.rs (11), hlsl/storage.rs (6), \u002B1 more file(s). The bar is 30 methods; this is 68 over it, 3.27\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/mod.rs"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bcbc076a69eab36542477ff5384dd49318feff90a9e3a3d5e2c82ce1b9e9e52"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: parse/mod.rs: FileTooLong \u2014 1621 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1121 over it, 3.24\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"337b959239f90f81fdfa04338e522fe5a7841da20dbd4ccff13528dfa84fe8d3"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Writer: TooManyMethods \u2014 97 methods, declared across 6 files: spv/writer.rs (74), spv/mesh_shader.rs (8), ray/query.rs (7), ray/mod.rs (4), \u002B2 more file(s). The bar is 30 methods; this is 67 over it, 3.23\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mod.rs"},"region":{"startLine":921}}}],"partialFingerprints":{"codehealthFindingId/v1":"4119097bb28e534a2308416c840a14fd8fc375c675d963c4e115107e9a3e7617"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_render_pipeline: MethodTooLong \u2014 create_render_pipeline runs 321 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 221 over it, 3.21\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1425}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb34714c23ca1cb694f862c187f30127f3a428984abf16e10e4471bc5bd23db3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: metal/device.rs: FileTooLong \u2014 1600 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 92% of them inside a single declaration: Device (2 blocks, 162-2266). The bar is 500 significant lines; this is 1100 over it, 3.20\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a18decdbd35a7bef13df911ec58fe6c9aa1b61e70ecd3288e040de2689bbbce"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.construct: MethodTooLong \u2014 construct runs 317 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 217 over it, 3.17\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/construction.rs"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"df5caa323d0ffaf56c8a3f9a965e3f01bfc49f4e1d42e475997da038f43df847"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: glsl/builtins.rs: FileTooLong \u2014 1581 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1081 over it, 3.16\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77e7db8b59ef7b0cb4fe1f737905103666f8a744bae18295e45b9ea4d9f0f3a6"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: hlsl/help.rs: FileTooLong \u2014 1534 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1034 over it, 3.07\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dcf860f0b238628b133127fb392c13be5d8628925ba105faba4cae5f894e902"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: TextureFormat: ClassTooLong \u2014 1218 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 29 methods, 4 blocks, lines 128-1937. The bar is 400 significant lines; this is 818 over it, 3.05\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/texture/format.rs"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3ffd069aeed83b3ea30959a4a0fea0cad3eabae4eb82cbba5f833bd179fd67f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/validation.rs: FileTooLong \u2014 1514 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 1014 over it, 3.03\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"23019a524b0d19adf3a753e2e025c727d95f5516ab68c0411cc5a22b82c89ec0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/queue.rs: FileTooLong \u2014 1498 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 98% of them inside a single declaration: Queue (2 blocks, 53-2008). The bar is 500 significant lines; this is 998 over it, 3.00\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7da6835e30ded5f9ab076a1672bd54043d4c38147f98acdcdb0b0a548472907"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: wgsl/writer.rs: FileTooLong \u2014 1459 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 93% of them inside a single declaration: Writer (2 blocks, 82-2141). The bar is 500 significant lines; this is 959 over it, 2.92\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3385fe2cdafebc54181a644a16e587c81688f39f30076e8fad3ad30a44c49675"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_xtask::cts::run_cts: FunctionTooLong \u2014 wgpu_xtask::cts::run_cts runs 291 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 191 over it, 2.91\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"xtask/src/cts.rs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd44b30c37ae9fc2004d49b942c03fc0c5a05fdbcc653d7138feea6dcbd6be45"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/function.rs: FileTooLong \u2014 1446 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 80% of them inside a single declaration: Validator (348-1998). The bar is 500 significant lines; this is 946 over it, 2.89\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"85f73403f9198a1c49196919b0ab7a7b0ef3fabde998f1b546ce1075977d65bb"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_entry_point: MethodTooLong \u2014 validate_entry_point runs 285 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 185 over it, 2.85\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":1257}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c0ef8685792c4b5b24a47fb49a462bbfbbf916ac451d677cb5881612431985c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dx12/command.rs: FileTooLong \u2014 1406 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 96% of them inside a single declaration: CommandEncoder (3 blocks, 74-2029). The bar is 500 significant lines; this is 906 over it, 2.81\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5b0c75e27359e1dd2e234922373e2c75080f8ecc3786294244d2779e3b4a7aa"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ConstantEvaluator.binary_op: MethodTooLong \u2014 binary_op runs 274 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 174 over it, 2.74\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2858}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fd5f1b76e7d3a8316f9e267a80922d2239f97d13246fbc2d241ffbbeebf2292"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: metal/command.rs: FileTooLong \u2014 1362 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 89% of them inside a single declaration: CommandEncoder (3 blocks, 156-1970). The bar is 500 significant lines; this is 862 over it, 2.72\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e3c743d032b100b5f66ecfa54bff1b66495ab39e530e10ccfec828498c1faf6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: StatementGraph.add: MethodTooLong \u2014 add runs 271 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 171 over it, 2.71\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"385e8cd74bd5c51ba616cddc0dabe426e234180c4d659d7dd438ce0b3fcf3a29"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: FunctionInfo.process_block: MethodTooLong \u2014 process_block runs 271 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 171 over it, 2.71\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":879}}}],"partialFingerprints":{"codehealthFindingId/v1":"0172cff6705a0b821b4058da7427dec4bc5870a18be0077dba3f0cb04f69e5a6"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/lib.rs: FileTooLong \u2014 1337 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 837 over it, 2.67\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/lib.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cddda268dc985617bd136cdb2999957f8ee5fa991230a930a7c6846d5daebbef"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Player: ClassTooLong \u2014 1066 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 39 methods, 3 blocks, lines 28-1358. The bar is 400 significant lines; this is 666 over it, 2.67\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"e78c7cce943238005728d7b97fa7d3618d5a25165ee011b61a9c6c012c7c379b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: command/bundle.rs: FileTooLong \u2014 1330 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 830 over it, 2.66\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f934384cfae924614e7638beb3b7e6f6a1e9645ebff514f795c7558787c66dd"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Player.process: MethodTooLong \u2014 process runs 266 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 166 over it, 2.66\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"085413aeaea5e1fce2291416db76bfad00a33693fc8ae0c7d6c1708f59981af1"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/device.rs: FileTooLong \u2014 1319 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 93% of them inside a single declaration: Device (2 blocks, 126-1900). The bar is 500 significant lines; this is 819 over it, 2.64\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7fe8be5addc48720435c9517d37882d222880e73d8fa39bca6b0f255a06744e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: device/queue.rs: FileTooLong \u2014 1317 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 78% of them inside a single declaration: Queue (4 blocks, 49-2117). The bar is 500 significant lines; this is 817 over it, 2.63\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"200e5bfd627cfc46163233e611fef4a52260ec1df2fc10e8f6a3a3ef8560467d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: texture/format.rs: FileTooLong \u2014 1314 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 93% of them inside a single declaration: TextureFormat (4 blocks, 128-1937). The bar is 500 significant lines; this is 814 over it, 2.63\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/texture/format.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15e9784112303571ef73afe5f10febd518a6c591deac177d908fce46b55618ad"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Queue: ClassTooLong \u2014 1032 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 30 methods, 4 blocks, lines 49-2117. The bar is 400 significant lines; this is 632 over it, 2.58\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"52abef0341f5e5caa97605e66d26133513853e599b4b4e14cce5a7fde76a58fd"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: metal/adapter.rs: FileTooLong \u2014 1281 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 781 over it, 2.56\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"419bc1c4603647d9e552dc324bb5826187902b230a9785b8c5827a00ccfbb721"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_entry_point_mesh_shader_info: MethodTooLong \u2014 write_entry_point_mesh_shader_info runs 254 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 154 over it, 2.54\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a54e11514b35c601949af946b296acee9791871f2303ccc1fe8bf244dcabe65"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Error: ClassTooLong \u2014 1006 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 1 methods, 3 blocks, lines 335-1750. The bar is 400 significant lines; this is 606 over it, 2.52\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"3593043ca4f772a7206864b007ee4e67031ec98aed1d87e60c0adb40d26ed8c0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/binding_model.rs: FileTooLong \u2014 1252 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 752 over it, 2.50\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/binding_model.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbd5211ae76a6046433d63ebee3f10d4c75d576bd1df05b1d672f76df813ff11"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_extract_ray_desc: MethodTooLong \u2014 write_extract_ray_desc runs 248 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 148 over it, 2.48\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/mod.rs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"88906b986277beaf75a3a9f71b6096aeca3b18c1081e7813aeede2a06397189a"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_bind_group: MethodTooLong \u2014 create_bind_group runs 248 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 148 over it, 2.48\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1591}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d3c30f28b353ed962578e0ea68ba653cadce3b272c9ee5551f4328615eb1ef3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: wgsl/error.rs: FileTooLong \u2014 1236 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 81% of them inside a single declaration: Error (3 blocks, 335-1750). The bar is 500 significant lines; this is 736 over it, 2.47\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cdad74500ab6b4dbc463826af4551c1dc07c4e12dcd93b8020b10c3d00668bf"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: FunctionInfo.process_expression: MethodTooLong \u2014 process_expression runs 246 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 146 over it, 2.46\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":531}}}],"partialFingerprints":{"codehealthFindingId/v1":"554c765f5c71a63857c66ee547fb1aecf8a4f2a524445a9e9b43161c7dd2d273"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::device::trace::record::action_to_owned: FunctionTooLong \u2014 wgpu_core::device::trace::record::action_to_owned runs 245 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 145 over it, 2.45\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/trace/record.rs"},"region":{"startLine":875}}}],"partialFingerprints":{"codehealthFindingId/v1":"23dc90d0db324e8676767bfa0b85a04089c4966a5da1f9acb4454040541bc651"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.parse_image_sample: MethodTooLong \u2014 parse_image_sample runs 244 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 144 over it, 2.44\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":490}}}],"partialFingerprints":{"codehealthFindingId/v1":"33d346e39d0e5eb258deca899a1765a17102ce52e42741a15aea612b4ee5e200"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/interface.rs: FileTooLong \u2014 1203 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 703 over it, 2.41\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aeab34f0d3025d01ca7c370a280149c41693d0968a9602b3b1674d28cde4c829"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Texture.create_view_inner: MethodTooLong \u2014 create_view_inner runs 239 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 139 over it, 2.39\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":1856}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a969edb323a35f0973cd591546b30166991fe968336de4cdcc0a31e60cb6b71"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: ray/query.rs: FileTooLong \u2014 1174 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 90% of them inside a single declaration: Writer (14-1494). The bar is 500 significant lines; this is 674 over it, 2.35\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/query.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d12ee8fd0c064c072c90201659d0f446f0279834b0653045e9676f9617f55286"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Context: ClassTooLong \u2014 939 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 32 methods, 3 blocks, lines 48-1531. The bar is 400 significant lines; this is 539 over it, 2.35\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"40f411c4a3af4d2a27be1dc984cc81046f023b296e993ead1bc8d34709389d51"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_render_pipeline: MethodTooLong \u2014 create_render_pipeline runs 232 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 132 over it, 2.32\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1982}}}],"partialFingerprints":{"codehealthFindingId/v1":"e44656b8645985efe8d05eb5809b72e1ce9d283bd981c470ae70f68549d096e8"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_wrapper_function: MethodTooLong \u2014 write_wrapper_function runs 231 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 131 over it, 2.31\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mesh_shader.rs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"55fae31f228f63495e5ed3ce120199213ccf683ecb5a449faf981af37e5e2458"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Writer: TooManyMethods \u2014 69 methods. The bar is 30 methods; this is 39 over it, 2.30\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":545}}}],"partialFingerprints":{"codehealthFindingId/v1":"07135d79f0beaedcf9704e0e7e0f03467c137fe262aa3a0a834dbec803e23224"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Frontend: TooManyMethods \u2014 69 methods, declared across 4 files: spv/mod.rs (58), spv/image.rs (7), spv/function.rs (3), spv/next_block.rs (1). The bar is 30 methods; this is 39 over it, 2.30\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":612}}}],"partialFingerprints":{"codehealthFindingId/v1":"d23e9738c439a3807102b32bdb12fcfbcfa860b4ef62d0780fd8bef46f3f35bf"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::back::dot::write_function_expressions: FunctionTooLong \u2014 naga::back::dot::write_function_expressions runs 228 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 128 over it, 2.28\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a0041073c768c58eb2d23be828e21d273ad63e6235abcaf2e57f84b0a99a840"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: command/mod.rs: FileTooLong \u2014 1124 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 624 over it, 2.25\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a858f02e5a613145b56ccb74d80b02365ce6f31aaaf5416f68f1a6f70488fa50"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: vulkan/command.rs: FileTooLong \u2014 1124 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 97% of them inside a single declaration: CommandEncoder (2 blocks, 41-1567). The bar is 500 significant lines; this is 624 over it, 2.25\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/command.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b542f20cd24aaea46d1ce2d1ff2db5da7781beeaac82d95af51af52f231f0af"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BlockContext.write_image_sample: MethodTooLong \u2014 write_image_sample runs 224 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 124 over it, 2.24\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":803}}}],"partialFingerprints":{"codehealthFindingId/v1":"27463268182f2b3f8bdc7ce9bf186eeb48b60f50c4462a869d980a47ecb311d2"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::glsl::builtins::inject_builtin: FunctionTooLong \u2014 naga::front::glsl::builtins::inject_builtin runs 224 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 124 over it, 2.24\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"364f3d9097238bf77b82e9be872cf2cd8338b9754477a1de60d1b95b62382b31"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: RenderPass: TooManyMethods \u2014 66 methods. The bar is 30 methods; this is 36 over it, 2.20\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":297}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fd1f667c9251e6caa65ef21baf82fd35d888e34deb1772fbb2625f007820194"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dx12/mod.rs: FileTooLong \u2014 1094 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 594 over it, 2.19\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9588a11a0dff1132b4eab0f6cbebaf431716550ce306f9c64df23b456436a841"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::command::compute::encode_compute_pass: FunctionTooLong \u2014 wgpu_core::command::compute::encode_compute_pass runs 218 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 118 over it, 2.18\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":622}}}],"partialFingerprints":{"codehealthFindingId/v1":"36c28e34b1833d9608540738c6db8c1b693d5693722bb847287539f5e7904842"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_render_pipeline: MethodTooLong \u2014 create_render_pipeline runs 218 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 118 over it, 2.18\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1997}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce5693507a523e0798aa3aad733ae1765b0f4005964410054768bd9d989b3481"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/lib.rs: FileTooLong \u2014 1083 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 98% of them inside a single declaration: Player (3 blocks, 28-1358). The bar is 500 significant lines; this is 583 over it, 2.17\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6455f60c0a008d33c6c6ddeb3dae2294f0e687ec8adc164a5ef19f75b116dcab"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/expression.rs: FileTooLong \u2014 1080 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 81% of them inside a single declaration: Validator (219-1467). The bar is 500 significant lines; this is 580 over it, 2.16\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6d2c7617a957e4a5fb067046d98a94ec71a201bd162bdac8849808a468cc919"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: player::bin::play::main: FunctionTooLong \u2014 player::bin::play::main runs 211 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 111 over it, 2.11\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/bin/play.rs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d968a6774c229a11b973e2bf123731771fa8da386ae0919bb2226d4f79e4219"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Adapter.texture_format_capabilities: MethodTooLong \u2014 texture_format_capabilities runs 211 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 111 over it, 2.11\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"30e4c793d67addfae417bd8468fab5a10cd09cc562041a6c89ef5744d6bfbee3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/instructions.rs: FileTooLong \u2014 1040 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 93% of them inside a single declaration: Instruction (22-1339). The bar is 500 significant lines; this is 540 over it, 2.08\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/instructions.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bf0e2ab5b23b7975c4a4364826e2ebad14b98de2b3a4e49d057ad753006d2e3"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::glsl::builtins::inject_common_builtin: FunctionTooLong \u2014 naga::front::glsl::builtins::inject_common_builtin runs 207 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 107 over it, 2.07\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1220}}}],"partialFingerprints":{"codehealthFindingId/v1":"91371165a808cdbc12869af531ff75b00cc762367036ad723083b6a044c26066"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.begin_render_pass_inner: MethodTooLong \u2014 begin_render_pass_inner runs 207 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 107 over it, 2.07\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1880}}}],"partialFingerprints":{"codehealthFindingId/v1":"cae308ce6004266a4fcbede7c92ea6c50d36eac39e4c81e6a3b5d606e8abd372"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dx12/adapter.rs: FileTooLong \u2014 1025 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 89% of them inside a single declaration: Adapter (3 blocks, 32-1408). The bar is 500 significant lines; this is 525 over it, 2.05\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d0b30fee0228cbf18bc4f5f0f7adfb9fc01b0023c8583ab68ec6537161d5687"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: RenderBundleEncoder.finish_inner: MethodTooLong \u2014 finish_inner runs 204 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 104 over it, 2.04\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"9af3ae3d2c9f9ef8392e6ccd99e97e0026cfd95b0d3a574ab3f9c8e86d8e37b8"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/adapter.rs: FileTooLong \u2014 1017 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 97% of them inside a single declaration: Adapter (2 blocks, 15-1411). The bar is 500 significant lines; this is 517 over it, 2.03\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba48f3f99584ca3f89c8726c2a9cb765c273fcea34e3e7220a0d891d5ec78233"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFields: Limits: TooManyFields \u2014 61 stored fields beside 15 methods. The bar is 30 stored fields; this is 31 over it, 2.03\u00D7 the bar. This is width in DATA, not behaviour: every reader that takes the whole type couples to all of its fields, so a change to any one of them is a change every reader has to be checked against. To reduce it, group the fields that are read together by the same callers into a smaller type of their own, and have this one hold that type as a single member \u2014 each reader then names only the group it uses."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/limits.rs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb93cf9ba189f5e9b623b6185226b15783ff29f382165c0a4076cd7b0bb542af"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.map_binding: MethodTooLong \u2014 map_binding runs 203 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 103 over it, 2.03\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3118}}}],"partialFingerprints":{"codehealthFindingId/v1":"165af074232308d1bee66d03bc831b07707acd90f799ae640ad5473722b0bace"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.process_entry_point: MethodTooLong \u2014 process_entry_point runs 203 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 103 over it, 2.03\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/function.rs"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e12deb2cb89f31322ac504a931b70c902fae5b9d1a0f9a57d70d49204af950f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/egl.rs: FileTooLong \u2014 1012 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 512 over it, 2.02\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a330f48e58848ef37ccd6416d2609ff4938f9e65aded1a4186fa870ad3289d9"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_ray_query_generate_intersection: MethodTooLong \u2014 write_ray_query_generate_intersection runs 202 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 102 over it, 2.02\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/query.rs"},"region":{"startLine":783}}}],"partialFingerprints":{"codehealthFindingId/v1":"658b32ed49fdac2f80fa03dc93097c69b1a5359646a444b4b8dcd47fef78b908"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_bind_group_layout_impl: MethodTooLong \u2014 create_bind_group_layout_impl runs 202 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 102 over it, 2.02\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2978}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf155fde0a48af324f105e78b57d259a72fdc4c90a47ee12ce75a23fd192fd3e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: glsl/functions.rs: FileTooLong \u2014 1001 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 84% of them inside a single declaration: Frontend (33-1385). The bar is 500 significant lines; this is 501 over it, 2.00\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"29035594b34703700e100ccbc7ff65a74b966c86433ee33256e3c018e20655c2"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_bind_group_inner: MethodTooLong \u2014 create_bind_group_inner runs 200 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 100 over it, 2.00\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":3731}}}],"partialFingerprints":{"codehealthFindingId/v1":"b95893471ba724a2954e99abd15e66b43e8bf9aa531e2e9d93aef181fe791f98"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: command/compute.rs: FileTooLong \u2014 990 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 490 over it, 1.98\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6c0d2b1685ef3d706926a846b0101207f7666411a9a3ff1a0d845ba12579bd8"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_bind_group: MethodTooLong \u2014 create_bind_group runs 198 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 98 over it, 1.98\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1090}}}],"partialFingerprints":{"codehealthFindingId/v1":"30d64628c80c6aa611cd30dfb3af52c4441bf26f5cc16e936e78c33ed331eaf9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: ir/mod.rs: FileTooLong \u2014 988 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 488 over it, 1.98\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/ir/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c43f0f0ec47419e68a11cfa58ac396689a89a85088375f40657477725e0d5cc0"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Instance.init_with_callback: MethodTooLong \u2014 init_with_callback runs 197 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 97 over it, 1.97\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"d124b7a2f6570c821593139cae5f89e003ca4373f168d7da04505f3077f68c46"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::command::ray_tracing::build_acceleration_structures: FunctionTooLong \u2014 wgpu_core::command::ray_tracing::build_acceleration_structures runs 196 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 96 over it, 1.96\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"887f09ee4bf4870d4e8068c47954690cafae878dd7f624fc038d8eb57929dbb8"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: glsl/context.rs: FileTooLong \u2014 974 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 96% of them inside a single declaration: Context (3 blocks, 48-1531). The bar is 500 significant lines; this is 474 over it, 1.95\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"450beb29b3f754e1c92ce7c4487b77ea49fa39624ca16bd8881b5170c5881884"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_storage_store: MethodTooLong \u2014 write_storage_store runs 193 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 93 over it, 1.93\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"d500d473d3fce5d8f02858450b64bb0eab2a6d8d4506046e02391fa67e65799b"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_function: MethodTooLong \u2014 write_function runs 191 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 91 over it, 1.91\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1629}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0857887b80b55e571c6fb90200667120ab2c1b4e3ed0c6744142dd9bdb5c97d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: BlockContext: TooManyMethods \u2014 57 methods, declared across 7 files: spv/block.rs (22), spv/image.rs (12), spv/index.rs (9), spv/mod.rs (8), \u002B3 more file(s). The bar is 30 methods; this is 27 over it, 1.90\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mod.rs"},"region":{"startLine":826}}}],"partialFingerprints":{"codehealthFindingId/v1":"a463f933e60d27ee34cf764b854a7579c3a6d4c37207bea2f5f2577cef7667bc"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Dispatch.new: MethodTooLong \u2014 new runs 189 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 89 over it, 1.89\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"77ec72de3e300861231af3ca7b894b4702451d25dd259bc45a89bcbe39930cb2"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/command.rs: FileTooLong \u2014 944 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 91% of them inside a single declaration: CommandEncoder (3 blocks, 101-1345). The bar is 500 significant lines; this is 444 over it, 1.89\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9079618aaebcd67b8f6806850d9e20edb0aaa2c89714b6234982661f34c2408"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ConstantEvaluator.cast: MethodTooLong \u2014 cast runs 185 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 85 over it, 1.85\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2486}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cc7a86914abff46b2d0e2bfff1af9bdcfa0f5e7dbd4b449d323147912d4a406"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_texture: MethodTooLong \u2014 create_texture runs 185 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 85 over it, 1.85\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":943}}}],"partialFingerprints":{"codehealthFindingId/v1":"5867238d36cc48ea813a86f85b0906179b70044abf7bbaf80bb9a09f4a6da30f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.load_shader: MethodTooLong \u2014 load_shader runs 185 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 85 over it, 1.85\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"850d3e967a7defe6b5d75844bcaa28d2b0be87c75e10d42190be0ae9244c0f84"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_block_handles: MethodTooLong \u2014 validate_block_handles runs 184 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 84 over it, 1.84\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b70ba62e322ab6e70583a63f1bfb076db692310d6b7a37236abc3777f1a8570"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/instance.rs: FileTooLong \u2014 919 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 419 over it, 1.84\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"00270993dfec79f6cbf1b7e96ce3c4d8fb2de2fa082e6f3b6e96ce94d773c2e8"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Inner.create: MethodTooLong \u2014 create runs 183 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 83 over it, 1.83\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":408}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae5670d20730cacebc2eafd6cf0801a5ded2790408ff3c276115c835b27c8c55"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::back::pipeline_constants::adjust_stmt: FunctionTooLong \u2014 naga::back::pipeline_constants::adjust_stmt runs 182 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 82 over it, 1.82\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":721}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d0fcc9c59cb0b101ca2c6bbbe039124ec99d1f1eede984f7a5542d40986d039"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: RenderPass: ClassTooLong \u2014 724 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 66 methods, 6 blocks, lines 297-4567. The bar is 400 significant lines; this is 324 over it, 1.81\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":297}}}],"partialFingerprints":{"codehealthFindingId/v1":"674759dcc698102149407bd2be93a1c46c0a7f85813218ccb41be7be19f574a0"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::back::pipeline_constants::adjust_expr: FunctionTooLong \u2014 naga::back::pipeline_constants::adjust_expr runs 181 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 81 over it, 1.81\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"f53ef4599f83fa29b84e0efaa2ee1a6883fa6ba54bbd1200465c17bd704c5267"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.function_call: MethodTooLong \u2014 function_call runs 180 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 80 over it, 1.80\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2f1765c05ec5b203d5017a89a503586fe94a91d3145c146248dc01f3c0b0db1"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: vulkan/mod.rs: FileTooLong \u2014 895 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 395 over it, 1.79\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a97045ac63e3be52b6bc23c006cdf5005d63523beb14719631fc8bf0c879c2"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.parse_function: MethodTooLong \u2014 parse_function runs 179 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 79 over it, 1.79\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/function.rs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1bf6567c862cf9f3e5d17673a3dafafe115f801e97da61958d2fba6d51c04eb"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_global_var: MethodTooLong \u2014 validate_global_var runs 179 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 79 over it, 1.79\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":920}}}],"partialFingerprints":{"codehealthFindingId/v1":"82dcb8942516c6433458713ee8b784ce0988f60a9561492fe31446d51fbffc02"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: metal/mod.rs: FileTooLong \u2014 885 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 385 over it, 1.77\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"80522f4ad50ddc000fad75f8e310e904e6120e343705106eb17b1046d457de7d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: global/device.rs: FileTooLong \u2014 879 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 97% of them inside a single declaration: Global (36-1353). The bar is 500 significant lines; this is 379 over it, 1.76\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core-remote/src/global/device.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"05ba2162fe06f22932881c814f9dcb5c89a5c22f0b837a932020a1ddb9b765df"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: trace/record.rs: FileTooLong \u2014 876 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 376 over it, 1.75\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/trace/record.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb1b2ebcf231673a9583bb2a6a3ee3250df73c7eab43aec1a871ffa168b324a1"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Queue.write_texture_inner: MethodTooLong \u2014 write_texture_inner runs 175 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 75 over it, 1.75\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":966}}}],"partialFingerprints":{"codehealthFindingId/v1":"15c0d8e0622e13f1ba28f72c1bc437022787b6c8b82a483ff5b6fc804dc2f170"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/image.rs: FileTooLong \u2014 874 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 89% of them inside a single declaration: BlockContext (231-1383). The bar is 500 significant lines; this is 374 over it, 1.75\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"48ad7dfea3be98a0abc23cdb1395921821f43ab819b5c03ee52e28139971b204"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: track/texture.rs: FileTooLong \u2014 874 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 374 over it, 1.75\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c89803be4edd507c99abf138e8f8b22ac6cc833bba3e9c40e6c65576275fbb41"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.collect_required_features: MethodTooLong \u2014 collect_required_features runs 174 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 74 over it, 1.74\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c2f656f32046f6ca9c92324c1ddee51665959e95fff515c9cfbe324fcbc2c06"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/pipeline.rs: FileTooLong \u2014 866 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 366 over it, 1.73\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f2b07cfeacb60a9e958ff69bc41ccd4d2f11033376f0efd1f6efbcb318af322"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_module_handles: MethodTooLong \u2014 validate_module_handles runs 173 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 73 over it, 1.73\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"46f2a9c00d0f4258b299db542b4ffba9eef4f1e739870ffc6a96b0e1b735a2dd"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.lower: MethodTooLong \u2014 lower runs 171 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 71 over it, 1.71\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1273}}}],"partialFingerprints":{"codehealthFindingId/v1":"4052df5df586e87103ad273a846c1f1364c21b3b242149e6f16192383f646fa0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: vulkan/conv.rs: FileTooLong \u2014 853 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), declaring 49 free functions. The bar is 500 significant lines; this is 353 over it, 1.71\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/conv.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"032fbb0d6b4642cccc4b2aab1c5eb6cf0957ee7ea2b54db8a1f930c3b3b6be9a"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.validate_texture_descriptor_inner: MethodTooLong \u2014 validate_texture_descriptor_inner runs 168 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 68 over it, 1.68\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1736}}}],"partialFingerprints":{"codehealthFindingId/v1":"886082769df50abd562303c83ee776ca446d860a6d96a8eb2fa31e9230333f1c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Draw.inject_validation_pass: MethodTooLong \u2014 inject_validation_pass runs 168 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 68 over it, 1.68\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/draw.rs"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"63acf3c1128cd330a57f46d4f04bbe694d284efb97242a26d9ed9f2aa37044c5"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.encode_commands: MethodTooLong \u2014 encode_commands runs 165 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 65 over it, 1.65\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":1085}}}],"partialFingerprints":{"codehealthFindingId/v1":"342148da476717f80740074f067435ce50dacdc44238be33d4c61df6b7178d8d"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Instance.init: MethodTooLong \u2014 init runs 165 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 65 over it, 1.65\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":724}}}],"partialFingerprints":{"codehealthFindingId/v1":"ada11d5bd5780dcae6dd38964669423da680a323dd6857fc7e5f7df1bf6e838b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: command/ray_tracing.rs: FileTooLong \u2014 820 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 320 over it, 1.64\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a1b19fdd303c011e6f16e43d1102d683aa5bba3d28755309be153be6195f9e9"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_wrapped_binary_op: MethodTooLong \u2014 write_wrapped_binary_op runs 164 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 64 over it, 1.64\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":662}}}],"partialFingerprints":{"codehealthFindingId/v1":"48d277eac68c1d79daf5c0929fcdb9a7e2d87b66d25a1036be33691bd35f0cb9"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::compact::compact: FunctionTooLong \u2014 naga::compact::compact runs 164 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 64 over it, 1.64\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/mod.rs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5f7955f95cab3d4f0745d6a391c24057f31c946516b6108c21279b6ea7b7342"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: FunctionMap.adjust_body: MethodTooLong \u2014 adjust_body runs 163 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 63 over it, 1.63\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"d67bcbfebf9d07bd58a01058875292b766ead73438c406c373bd1ec8cf422ac3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/analyzer.rs: FileTooLong \u2014 813 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 77% of them inside a single declaration: FunctionInfo (5 blocks, 240-1235). The bar is 500 significant lines; this is 313 over it, 1.63\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fc902a5f61782c868c3405b51c71c0dbc6070b53aa9f2ff2d269266009daedb"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write: MethodTooLong \u2014 write runs 162 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 62 over it, 1.62\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":324}}}],"partialFingerprints":{"codehealthFindingId/v1":"27c325bb88dad44b0460b86a37a3f13a356715e090d396d9709146c511a914e3"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_buffer_inner: MethodTooLong \u2014 create_buffer_inner runs 162 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 62 over it, 1.62\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1152}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dbd8ea4d2c05d4888fdb3fd907118ed504141e663d3da3185b49f6c1c33dc93"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: WebDevice: ClassTooLong \u2014 644 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 2 methods, 4 blocks, lines 1290-2909. The bar is 400 significant lines; this is 244 over it, 1.61\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":1290}}}],"partialFingerprints":{"codehealthFindingId/v1":"3eb88152781566594131ae3d7dc2b1ef03a53aa9c3554324afc4e3a022c5ca17"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: RenderBundle.execute: MethodTooLong \u2014 execute runs 161 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 61 over it, 1.61\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a70284a74018caf8ef29a3c9dfcfab863ba1a1539c9d47375f8abceed0f5ca2"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Writer: TooManyMethods \u2014 48 methods, declared across 4 files: glsl/writer.rs (38), msl/ray.rs (5), glsl/features.rs (3), msl/mesh_shader.rs (2). The bar is 30 methods; this is 18 over it, 1.60\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"b117b36e47142235c3eeda7eadae060097285a1047da3240e3f5fd1f9696ee97"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_wrapped_convert_from_std140_compat_type: MethodTooLong \u2014 write_wrapped_convert_from_std140_compat_type runs 160 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 60 over it, 1.60\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":880}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bdc504dd0c58c72fcf6ef76e7af6c46263bd0f2487f873a6facdf234cfef3ad"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_info::human::print_adapter: FunctionTooLong \u2014 wgpu_info::human::print_adapter runs 159 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 59 over it, 1.59\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-info/src/human.rs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"de6b0ba488650c91f2b95ac3025a74aba5ec92b590b2827eead366bb55f6a7ef"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::common::wgsl::types::try_write_type_inner: FunctionTooLong \u2014 naga::common::wgsl::types::try_write_type_inner runs 157 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 57 over it, 1.57\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/wgsl/types.rs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ee6efbb4e780f7cf9c6e24b1425fad98ce7629fdda91ad069e55c784dd6317f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.parse_global_variable: MethodTooLong \u2014 parse_global_variable runs 156 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 56 over it, 1.56\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2951}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c2c59b1405410d648d4bacd2d0c52d443d70aa40673a40009ed9dcd203377d1"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: FunctionInfo: ClassTooLong \u2014 623 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 10 methods, 5 blocks, lines 240-1235. The bar is 400 significant lines; this is 223 over it, 1.56\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"b46d250ebf3c56a8ef684016514cb550fc129e0a87abd8f372032fadfd17ff45"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Adapter.texture_format_capabilities: MethodTooLong \u2014 texture_format_capabilities runs 155 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 55 over it, 1.55\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1149}}}],"partialFingerprints":{"codehealthFindingId/v1":"96a5dcc3ff07b8b580825120481d83409f4fd5bf9e4a7877b34ad63f11c4a835"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: AdapterShared.describe_texture_format: MethodTooLong \u2014 describe_texture_format runs 154 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 54 over it, 1.54\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/conv.rs"},"region":{"startLine":2}}}],"partialFingerprints":{"codehealthFindingId/v1":"a19170165906caceb016fb2bb1d23bf01a64f8c77f9f5b5e4a9962266c1399a8"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Device: TooManyMethods \u2014 46 methods. The bar is 30 methods; this is 16 over it, 1.53\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/device.rs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"aca86cf8152ba55bbdb44f727906da6807567294efef60e7d28f6556ca7d88f7"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: TextureFormat.from: MethodTooLong \u2014 from runs 153 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 53 over it, 1.53\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":496}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e29ecd1956e14d565f486aff1fd385f7d79f22be3fa2c9415aa24a24ab1a740"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Queue.submit_inner: MethodTooLong \u2014 submit_inner runs 153 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 53 over it, 1.53\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1511}}}],"partialFingerprints":{"codehealthFindingId/v1":"f35372affccb56463b5636e34c39bcd4af9f168c25bcd4f7a6aa9309a0abb947"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ModuleMap.adjust_expression: MethodTooLong \u2014 adjust_expression runs 152 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 52 over it, 1.52\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/expressions.rs"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"94c82bd103ba70ab5e7c345598ce3f5017ba7091675ed19b0690fb40ca658a2b"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Surface.configure: MethodTooLong \u2014 configure runs 152 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 52 over it, 1.52\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1243}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa130f8dd6f7444e2806dbaea18a10819865c2196e43b71d3cf75e773183dd26"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/mod.rs: FileTooLong \u2014 758 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 258 over it, 1.52\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d5a46b5fb860961f314a1829a4acac332b1c644c6a446c80ad4a75fd24db7d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: vulkan/instance.rs: FileTooLong \u2014 757 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 75% of them inside a single declaration: Instance (2 blocks, 275-1215). The bar is 500 significant lines; this is 257 over it, 1.51\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"08bf11d1590cd0030ae1e17471aabce20aed3eaed99573324f4cbad2becad426"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.function: MethodTooLong \u2014 function runs 151 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 51 over it, 1.51\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1560}}}],"partialFingerprints":{"codehealthFindingId/v1":"45cf41fed82ea1846f0dc80516c321432e6608f2a7fde07542e66a44aa253cdc"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: back/pipeline_constants.rs: FileTooLong \u2014 753 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 253 over it, 1.51\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ba52b4e168a77d2b318e1cb91b21d93870050650a54fc7129e393050bed29b7"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/mesh_shader.rs: FileTooLong \u2014 753 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 96% of them inside a single declaration: Writer (53-1027). The bar is 500 significant lines; this is 253 over it, 1.51\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2882a7e2236dfbd1a7d4ebe5af451249c81fd280e90aa8cb5d201fc1192082b9"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.new: MethodTooLong \u2014 new runs 149 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 49 over it, 1.49\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a9d1e2b05502f32f3b2a197b037689a5bb1ec819ab567112b01cc9f72600d05"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.new: MethodTooLong \u2014 new runs 149 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 49 over it, 1.49\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5830cfe761c374dc31912b7f8967866a697035ba4a8f9423f7df56a7826e1f8"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Surface.configure: MethodTooLong \u2014 configure runs 149 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 49 over it, 1.49\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd5234e8791b27bc4f9e9f0f3449d1826156466c87023c8e0288ea8304b7e315"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_std140_compat_type_declaration: MethodTooLong \u2014 write_std140_compat_type_declaration runs 148 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 48 over it, 1.48\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2345}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0d11caf1aebba9eefc248ad7e3947c690ce95ed3eb50d6ccda63ad475705639"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_expression_handles: MethodTooLong \u2014 validate_expression_handles runs 148 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 48 over it, 1.48\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":491}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c9a9749841d90035b66c1f99e01496873dbadeb74201dc0efc9e716f81e659f"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: GPUDevice: ClassTooLong \u2014 591 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 29 methods, 6 blocks, lines 46-896. The bar is 400 significant lines; this is 191 over it, 1.48\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/device.rs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"65f758314c5f8e78c4373bd349594802ccf81bc00c8e65f452bc29f53041aa34"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Interface: ClassTooLong \u2014 590 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 5 methods, 2 blocks, lines 376-2105. The bar is 400 significant lines; this is 190 over it, 1.48\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"0278afc41f178b6306c1fbdc0bd049360c3b0469f6665b1c1e9206e01ce296ec"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_enable_declarations: MethodTooLong \u2014 write_enable_declarations runs 147 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 47 over it, 1.47\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"f74231b0d3c96be47d76f7b4b9f5c7a1d659956eb673c0f1e9fab31f3ba85dfa"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_atomic: MethodTooLong \u2014 validate_atomic runs 147 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 47 over it, 1.47\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"342f1351df1ac0a4c055c85226abec54ab07db7fe941578690a5d60f3c957392"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Queue.copy_external_image_to_texture: MethodTooLong \u2014 copy_external_image_to_texture runs 147 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 47 over it, 1.47\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1233}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad20d3be9f18507c0b7435f5a2a8f25f203750e720550cea135b1c9d0d4020f3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: proc/mod.rs: FileTooLong \u2014 733 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 233 over it, 1.47\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d454adb8ecebb69c434c59cecd71820d676adf9e055ee4b65796cdeaa4f99777"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: GPUAdapter.request_device: MethodTooLong \u2014 request_device runs 146 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 46 over it, 1.46\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bfc794a8990ecac4bde730329d41cc8facfde93caa68612e1464f8536e08d7e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Resource.check_binding_use: MethodTooLong \u2014 check_binding_use runs 146 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 46 over it, 1.46\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ba62892ad91652f5ab0a4b1fd977dcbf21ab6dba960acb30b2cbfecd11700a9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: indirect_validation/draw.rs: FileTooLong \u2014 729 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 229 over it, 1.46\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/draw.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9960b5731c88ced62dafba7abb5b576a39549ad7c83238bd6027782d88764fe8"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga_cli::bin::naga::write_output: FunctionTooLong \u2014 naga_cli::bin::naga::write_output runs 145 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 45 over it, 1.45\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga-cli/src/bin/naga.rs"},"region":{"startLine":826}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d69f0113247e9b2a1e0489cbd85239d025a2333c056235cb30455b9d7f8b3ad"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ExpressionTracer.trace_expression: MethodTooLong \u2014 trace_expression runs 144 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 44 over it, 1.44\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/expressions.rs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"48fd50afb9a7251ae220c33581772e0b85b82c04c48db1a8f57e52646f2826ed"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ConstantEvaluator: TooManyMethods \u2014 43 methods. The bar is 30 methods; this is 13 over it, 1.43\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":683}}}],"partialFingerprints":{"codehealthFindingId/v1":"90c02a90ab80def04d79b0655d558848ecc4a286053500ecdcd86b1e2a520b67"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Validator: TooManyMethods \u2014 43 methods, declared across 6 files: valid/handles.rs (12), valid/function.rs (9), valid/mod.rs (9), valid/expression.rs (6), \u002B2 more file(s). The bar is 30 methods; this is 13 over it, 1.43\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba9f21c84492046c4e116e2714100b827fc4ea11f02ba7ba7a36c541affd23d5"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CommandEncoder: TooManyMethods \u2014 43 methods, declared across 9 files: command/mod.rs (16), command/transfer.rs (8), command/clear.rs (4), command/query.rs (4), \u002B5 more file(s). The bar is 30 methods; this is 13 over it, 1.43\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":510}}}],"partialFingerprints":{"codehealthFindingId/v1":"56ade4fcf9c32328acb30dab5ad1089195a185ba2c1e4302040f5ad1762f86b7"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/dispatch.rs: FileTooLong \u2014 716 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 216 over it, 1.43\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/dispatch.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2efa01c9c42686cb5b3320671049efb0a568f325511fb43e95f522585e3480fc"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.begin_render_pass: MethodTooLong \u2014 begin_render_pass runs 142 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 42 over it, 1.42\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce90d8b0f14ffb4e6eae0cd1268cc120779ee5fe15df2b4d33f130aab29e3b82"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.begin_render_pass: MethodTooLong \u2014 begin_render_pass runs 142 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 42 over it, 1.42\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":895}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b191fd9bce16cd6c89b6d085b65d8c5b3f5cfa693f838c29df5edb4dbd3eab9"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_naga_bridge::features_to_naga_capabilities: FunctionTooLong \u2014 wgpu_naga_bridge::features_to_naga_capabilities runs 142 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 42 over it, 1.42\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-naga-bridge/src/lib.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"2de36da0c722db7175d3723e784327bc8eeb931f4fe8df508b90a228b06ea821"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: FunctionTracer.trace_block: MethodTooLong \u2014 trace_block runs 141 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 41 over it, 1.41\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"4576e05b6ba19c285a8929f678dca27cae9767c4bcaf1badabd92bdb56e7f729"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::command::render::multi_draw_indirect: FunctionTooLong \u2014 wgpu_core::command::render::multi_draw_indirect runs 141 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 41 over it, 1.41\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":3211}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf783a7b43a08760b8fb89caa25b5f11a59841681bdceb995b25f3e5aad34506"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: PrivateCapabilities.map_texture_format: MethodTooLong \u2014 map_texture_format runs 141 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 41 over it, 1.41\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/conv.rs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"12970d054400454107cb9ec734dd97c30a43c907dbe0feec8c0dcec680f57cf0"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.expression_for_reference: MethodTooLong \u2014 expression_for_reference runs 140 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 40 over it, 1.40\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":2391}}}],"partialFingerprints":{"codehealthFindingId/v1":"48815ec214de18f8e913bf0594eb09fb454e36f4b7c8df1548376a4bdcdc05f0"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ParsingContext.parse_declaration: MethodTooLong \u2014 parse_declaration runs 139 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 39 over it, 1.39\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e6ac17f5fa315eda4d149c0a494e9d7f4932ceb6beae1efcf08ac26671318bd"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_logical_layout: MethodTooLong \u2014 write_logical_layout runs 138 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 38 over it, 1.38\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3713}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9dd008587dc610e56756c56f035308e77cfc79d7b5d2324c6ac9f09173ab190"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_task_shader_wrapper: MethodTooLong \u2014 write_task_shader_wrapper runs 137 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 37 over it, 1.37\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":856}}}],"partialFingerprints":{"codehealthFindingId/v1":"1da3e888a0e383eaf2c35cda0275ecf4950dce1de225ac10952883b52e407bbe"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/handles.rs: FileTooLong \u2014 684 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 89% of them inside a single declaration: Validator (17-899). The bar is 500 significant lines; this is 184 over it, 1.37\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5eabbb09fa3cffcf65a208c7d4eeba6477dd34b17ec2c1415e91e32f813214a0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: deno_webgpu/device.rs: FileTooLong \u2014 680 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 87% of them inside a single declaration: GPUDevice (6 blocks, 46-896). The bar is 500 significant lines; this is 180 over it, 1.36\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/device.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f81e6753a543aa122fcbdefcd365f2267d3a6c1e5307c57303e8850fac92c8f4"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_ray_query_get_vertex_positions: MethodTooLong \u2014 write_ray_query_get_vertex_positions runs 136 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 36 over it, 1.36\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/query.rs"},"region":{"startLine":1213}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c849b3e57d691d4136f5ddff0adb5a1642aec3d980b135b4e58aba79ce50a4c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_bind_group: MethodTooLong \u2014 create_bind_group runs 136 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 36 over it, 1.36\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1702}}}],"partialFingerprints":{"codehealthFindingId/v1":"db89a4bdb742bc342555450d24bce75b5eb32efe8120b9a4636f99779872f33a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: bin/naga.rs: FileTooLong \u2014 679 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 179 over it, 1.36\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga-cli/src/bin/naga.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c0743b0737bb4cdb509b91eb9919d24d84b2966e02986097e0da832b2c661ad"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: CoreDevice: ClassTooLong \u2014 540 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 6 methods, 4 blocks, lines 220-1601. The bar is 400 significant lines; this is 140 over it, 1.35\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7a2a893f018ebca571a119bfcb7df13230b4b4ed9ea6c1f65b7ed1f14229052"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_texture_view: MethodTooLong \u2014 create_texture_view runs 135 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 35 over it, 1.35\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":616}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2b460bef1fbe07e819bcc42926c2453e06f2b6fc509536bb3db9d969317a96c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: PrivateTextureFormatCapabilities.map_format: MethodTooLong \u2014 map_format runs 134 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 34 over it, 1.34\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1675}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d38117119f09fe720783f14a72c975bd06dae83834fd2617192c5b22e6ab940"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ParsingContext: TooManyMethods \u2014 40 methods, declared across 5 files: glsl/parser.rs (12), parser/types.rs (9), parser/expressions.rs (8), parser/declarations.rs (6), \u002B1 more file(s). The bar is 30 methods; this is 10 over it, 1.33\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"515b0c916100683a707f6babb92fafcb9c283e37223d084f015abcea1da5f961"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/image.rs: FileTooLong \u2014 665 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 76% of them inside a single declaration: Frontend (235-932). The bar is 500 significant lines; this is 165 over it, 1.33\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"88fdd44d02d913f55967d467a0a31ab328686d6bea311c35a64d561c93b9cde8"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: deno_webgpu/01_webgpu.js: FileTooLong \u2014 662 significant lines (blank, comment-only and punctuation-only lines excluded; the length bar is tripled for a single-responsibility module of 4 or fewer top-level units). The bar is 500 significant lines; this is 162 over it, 1.32\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/01_webgpu.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d1ebd50de31b8a1b7d7be1ba1b495ef44d821f90b6cc5e3206058e428601d2"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_blas_inner: MethodTooLong \u2014 create_blas_inner runs 132 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 32 over it, 1.32\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/ray_tracing.rs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fe8ab5a8b75f446c30b18092ad69c037232fccd2117c435cf49964bd537c38e"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::command::compute::dispatch_workgroups_indirect: FunctionTooLong \u2014 wgpu_core::command::compute::dispatch_workgroups_indirect runs 131 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 31 over it, 1.31\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":978}}}],"partialFingerprints":{"codehealthFindingId/v1":"62c3c240bd019ddd62f7644925e68af9e36772df38570f1f0ac4bbe523bfadf1"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: DeviceShared.make_render_pass: MethodTooLong \u2014 make_render_pass runs 131 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 31 over it, 1.31\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"d54721e4f92a1ba5f0d6eb73b715b710668e218670d142b58d1d211d07432a3b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dot/mod.rs: FileTooLong \u2014 653 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 153 over it, 1.31\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d66aef5116f843b7a356d4cb6f30dabb39434aed7fad844b1eec1a29a4b82e7"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFields: Writer: TooManyFields \u2014 39 stored fields beside 97 methods. The bar is 30 stored fields; this is 9 over it, 1.30\u00D7 the bar. This is width in DATA, not behaviour: every reader that takes the whole type couples to all of its fields, so a change to any one of them is a change every reader has to be checked against. To reduce it, group the fields that are read together by the same callers into a smaller type of their own, and have this one hold that type as a single member \u2014 each reader then names only the group it uses."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mod.rs"},"region":{"startLine":921}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e5591c7934a9fc7535260d3f29c666471d6737543559b39bed329dc38e69312"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Parser: TooManyMethods \u2014 39 methods. The bar is 30 methods; this is 9 over it, 1.30\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd576ea8fce4fc3fd98b9511f11f4fa798544c7fe05687ba8568c212d39df3c6"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Player: TooManyMethods \u2014 39 methods. The bar is 30 methods; this is 9 over it, 1.30\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"c22586cd0f98961732d74937de439a5a129acf56c672647d35f9dc38102399f6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.load_shader: MethodTooLong \u2014 load_shader runs 130 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 30 over it, 1.30\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"98dc7c838618e992a19389e4bb976f30f01b5dd606f4bd88785a19bc0d2232ee"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: RenderBundleEncoder: ClassTooLong \u2014 517 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 30 methods, 2 blocks, lines 157-941. The bar is 400 significant lines; this is 117 over it, 1.29\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"a561581668c218057214024cae1c97bb774b15b57e19f646ce09860043db6386"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.begin_render_pass: MethodTooLong \u2014 begin_render_pass runs 129 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 29 over it, 1.29\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1026}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7801f50e7afeb67e48a0b3cce66c2ac29d90f7e17bff87f9b9bebf2bf644e3d"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CapabilitiesQuery.capabilities: MethodTooLong \u2014 capabilities runs 128 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 28 over it, 1.28\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1395}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f50205068b75bb20a27c16e62cd5a718d84a405e2501ccf6e2fe5d54c94b992"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_initialize_function: MethodTooLong \u2014 write_initialize_function runs 127 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 27 over it, 1.27\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/ray.rs"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"81e449c9635ef77ad2e7ae00a86b9584d646e687ae8901b76afc40e98cc2aeb2"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::glsl::types::parse_type: FunctionTooLong \u2014 naga::front::glsl::types::parse_type runs 127 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 27 over it, 1.27\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/types.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecbb060293c3373d43b0fc80573f614fc12594f9764e2c95d076049679e2a1be"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: VaryingContext: ClassTooLong \u2014 507 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 2 methods, 2 blocks, lines 219-917. The bar is 400 significant lines; this is 107 over it, 1.27\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":219}}}],"partialFingerprints":{"codehealthFindingId/v1":"330752c6320fbcd7e45182c1b3b506aab1ff971e2d4ead4ca9c4b01dc1ed2eef"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: GPUDevice.transform_render_pipeline_descriptor: MethodTooLong \u2014 transform_render_pipeline_descriptor runs 125 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 25 over it, 1.25\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/device.rs"},"region":{"startLine":735}}}],"partialFingerprints":{"codehealthFindingId/v1":"d624dc7f9d8741b3424c615649dc19979e5a1e8ab23c9931100565389b98c9d1"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::wgsl::parse::lexer::consume_token: FunctionTooLong \u2014 naga::front::wgsl::parse::lexer::consume_token runs 125 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 25 over it, 1.25\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/lexer.rs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"f39b950e91d88ff25c89858072c28b8be07ef370f6b4e64a2e9814ad1a15173c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: TextureFormat.guaranteed_format_features: MethodTooLong \u2014 guaranteed_format_features runs 125 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 25 over it, 1.25\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/texture/format.rs"},"region":{"startLine":914}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab5c10cac9f63ebb0b56b6fe0c5a6e118cefff09152c146ea774b00b1e66890d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/type.rs: FileTooLong \u2014 624 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 75% of them inside a single declaration: Validator (271-994). The bar is 500 significant lines; this is 124 over it, 1.25\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d8b73654d4ef2c550b6fa30356bbc5ed1c39114482bd06e6d74713047125b95"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::wgsl::parse::conv::map_predeclared_type: FunctionTooLong \u2014 naga::front::wgsl::parse::conv::map_predeclared_type runs 124 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 24 over it, 1.24\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/conv.rs"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac45b18869560ca0ba43107e103bc7817522bbec1fd7584cd7e91a88f912a342"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Player.resolve_render_command: MethodTooLong \u2014 resolve_render_command runs 124 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 24 over it, 1.24\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":1057}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a0f1fd8181bbe9823f30ec617ce12b8803fd1dba7b0954de42cee936c9daf15"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: TimestampNormalizer.new: MethodTooLong \u2014 new runs 124 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 24 over it, 1.24\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/timestamp_normalization/mod.rs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"72b84c04edbf8ded7dacabe3f95c49824ec12bbf85b14dc2f837a1f4321fd362"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Adapter.texture_format_capabilities: MethodTooLong \u2014 texture_format_capabilities runs 124 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 24 over it, 1.24\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":1118}}}],"partialFingerprints":{"codehealthFindingId/v1":"5378b5c61a71c761cdbb951e9028dea63cf8bdc314c0af4a9fc369eb3c7c704b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: GPUSupportedLimits: TooManyMethods \u2014 37 methods. The bar is 30 methods; this is 7 over it, 1.23\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"99a61dd9ab9601e3ed31769f6eb9129ebfa9ec4f816ef38866a8e6d0ecc0d3c8"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Lowerer: TooManyMethods \u2014 37 methods, declared across 2 files: lower/mod.rs (36), lower/construction.rs (1). The bar is 30 methods; this is 7 over it, 1.23\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1264}}}],"partialFingerprints":{"codehealthFindingId/v1":"64d78a385584a870978167393b1d0702e5747e431aabdb90628f8700e7b2fc3f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_global: MethodTooLong \u2014 write_global runs 122 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 22 over it, 1.22\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1024}}}],"partialFingerprints":{"codehealthFindingId/v1":"40b5c77a5a472e8202f05af845a7721f3b07277b94a3fd68abdbfaf6fb2a60c4"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::wgsl::parse::number::parse: FunctionTooLong \u2014 naga::front::wgsl::parse::number::parse runs 122 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 22 over it, 1.22\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"68221164e01f29602506842013635bc17ca32a72cfd8c722bdb64f74feada772"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.add_entry_point: MethodTooLong \u2014 add_entry_point runs 121 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 21 over it, 1.21\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":1218}}}],"partialFingerprints":{"codehealthFindingId/v1":"ede9fdc9dde68e01ff217f2cb08e1a756bcf47e9edc29f8db278a7dce8ccd1fd"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lexer.next: MethodTooLong \u2014 next runs 121 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 21 over it, 1.21\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/lex.rs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc793c06a0a0baa756a97fd4e4fb141138a9ba82b3ba99184adfb1924b197463"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: RenderPassInfo: ClassTooLong \u2014 481 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 3 methods, 2 blocks, lines 1122-1870. The bar is 400 significant lines; this is 81 over it, 1.20\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1122}}}],"partialFingerprints":{"codehealthFindingId/v1":"4770fc462f8e7309477524702ac9daf85b6b1a3ed1e08aa991e82cbea9d5ab84"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Module.generate_external_texture_types: MethodTooLong \u2014 generate_external_texture_types runs 120 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 20 over it, 1.20\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/type_gen.rs"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cdf1c64dcfa3027d75078e90d673e83040818ff15239c5567cf16633e6c246e"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: lock_analyzer::main: FunctionTooLong \u2014 lock_analyzer::main runs 119 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 19 over it, 1.19\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"lock-analyzer/src/main.rs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"aed7263ca1c12bcb812f5d8a652bd060708b0dff5c2a7a64e6f9b717098e9ec6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_pipeline_layout: MethodTooLong \u2014 create_pipeline_layout runs 119 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 19 over it, 1.19\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":903}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c0cd5106dcd4009ac1f3a82da893cf6b4e40190552aae09c89f943a809c96ba"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dynamic/command.rs: FileTooLong \u2014 589 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 65% of them inside a single declaration: C (237-782). The bar is 500 significant lines; this is 89 over it, 1.18\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dynamic/command.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2456701703d42164fa4cdfcd6425a268d11d3246489d6f36d3bff2b2db3978d7"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Texture: ClassTooLong \u2014 469 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 14 methods, 7 blocks, lines 1564-2455. The bar is 400 significant lines; this is 69 over it, 1.17\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":1564}}}],"partialFingerprints":{"codehealthFindingId/v1":"bca03c6c7efdd8e954f30a953a4417d774e155d8d9dd2ad29fd8cb9cb671c0a2"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_entry_point: MethodTooLong \u2014 write_entry_point runs 117 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 17 over it, 1.17\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1794}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c539eb26024c766ba323d9afe09b6bb12235513d6b5de8d11d74db9b4985e29"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Buffer: ClassTooLong \u2014 466 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 18 methods, 4 blocks, lines 451-1240. The bar is 400 significant lines; this is 66 over it, 1.17\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":451}}}],"partialFingerprints":{"codehealthFindingId/v1":"082e26a880b51809cd643040d902e3c905861a7708b7c1d89271f0cbc0cc3ae5"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.call: MethodTooLong \u2014 call runs 116 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 16 over it, 1.16\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":4020}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebd3a3e0e3378717591333f57c0353c9c4ba4e5d2a16baf15f9ca71c1fbdcfb0"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.texture_use_parameters: MethodTooLong \u2014 texture_use_parameters runs 116 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 16 over it, 1.16\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4034}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8836f61b63cfc808f08efbe76c34eb436374e437308280572ff057048064655"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: deno_webgpu/texture.rs: FileTooLong \u2014 575 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 75 over it, 1.15\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15635a4272eeaa86cb08c94cdaed15efb7a14fb0356bd1d457eaa0bf7cbc8a25"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Module.generate_predeclared_type: MethodTooLong \u2014 generate_predeclared_type runs 115 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 15 over it, 1.15\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/type_gen.rs"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"edbabaf9cbdd4310b5a635328d6f5f0a6ba0195ad8023521f3a256652fecdb12"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Namer.reset: MethodTooLong \u2014 reset runs 115 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 15 over it, 1.15\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/namer.rs"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e8252389af6d8752ca9113c69302e48f71419ba191076a5b26fa5b95b0c947c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CapabilitiesQuery.features: MethodTooLong \u2014 features runs 115 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 15 over it, 1.15\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1242}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1f1ede79e83300c1fe69e3476240508258554886ebec11555258883035ca832"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: gles/wgl.rs: FileTooLong \u2014 573 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 73 over it, 1.15\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/wgl.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"796349d162bbe98bf56de0ca74f2315ce38589b39ce0b276ec733dec43a6ad1b"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.field_selection: MethodTooLong \u2014 field_selection runs 114 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 14 over it, 1.14\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"afe5e832a16760fa0444964246ca9742e9c1daaec95b01291cf484480e37c92c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Lowerer.texture_sample_helper: MethodTooLong \u2014 texture_sample_helper runs 114 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 14 over it, 1.14\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":4543}}}],"partialFingerprints":{"codehealthFindingId/v1":"322bd5497228c4acd52a48707ff6b681ad0638576760676e9b9cb151623c831e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Validator.validate_impl: MethodTooLong \u2014 validate_impl runs 114 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 14 over it, 1.14\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"3dc7592d3211bcfcab5dbd7275432a0024b4b584180e917e3331948c3d70154c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/limits.rs: FileTooLong \u2014 567 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 74% of them inside a single declaration: Limits (3 blocks, 144-1096). The bar is 500 significant lines; this is 67 over it, 1.13\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/limits.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"520bc21ed57202cc25870b1948122c8cf492917c7a8f4ea2e3db4204a64684a5"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ExpressionContext: TooManyMethods \u2014 34 methods, declared across 2 files: lower/mod.rs (25), lower/conversion.rs (9). The bar is 30 methods; this is 4 over it, 1.13\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":369}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f484a6476dd6cffb54399ca80ecd07c009d74de6022d42e9f07648d27b67640"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::back::pipeline_constants::process_overrides: FunctionTooLong \u2014 naga::back::pipeline_constants::process_overrides runs 113 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 13 over it, 1.13\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4809fce1d8482a11800ba9c2fdc5813abd2e7527718c9d33e247bcdbc9752ae"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: valid/mod.rs: FileTooLong \u2014 563 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 63 over it, 1.13\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f62d737dc44e3d9e80eac47e062b8bdcb73c19a819d730bd5dec7136ef9bb9f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: spv/mod.rs: FileTooLong \u2014 560 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 60 over it, 1.12\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"18beef08c96a8635d4d7d4353144e8d876227e8c8221bd81828a5f541ad2d593"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: proc/typifier.rs: FileTooLong \u2014 557 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), about 80% of them inside a single declaration: ResolveContext (2 blocks, 220-826). The bar is 500 significant lines; this is 57 over it, 1.11\u00D7 the bar. Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/typifier.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1450ade747ccd06f196d9b1fb17f144c8be78f0089d92eb63c7f48a618aed5d5"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Module.analyze_mesh_shader_info: MethodTooLong \u2014 analyze_mesh_shader_info runs 111 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 11 over it, 1.11\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/mod.rs"},"region":{"startLine":757}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc4fa339f2168b81f670e33828116e5a381cf040b41f6c9aec4e1fcd9e7aef63"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ResolveContext: ClassTooLong \u2014 443 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 2 methods, 2 blocks, lines 220-826. The bar is 400 significant lines; this is 43 over it, 1.11\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/typifier.rs"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a948eb00d39275edef0b9d657e849fa11483a7bb5674ee7c9762766d55db0a6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BlockContext.write_image_query: MethodTooLong \u2014 write_image_query runs 110 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 10 over it, 1.10\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"45638aef2d53802221631cbd2c4d689984cbafbfeb03d22715d1e1dc0660570d"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.parse: MethodTooLong \u2014 parse runs 110 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 10 over it, 1.10\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1714}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b999108e490aef80cc958ee1a03fdd78b13d887f7e1baf3986bce99fbc9da67"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.begin_render_pass: MethodTooLong \u2014 begin_render_pass runs 110 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 10 over it, 1.10\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/command.rs"},"region":{"startLine":824}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccbd2f846b36ae3fe8f7508e5e838d0e30e68510b10222ed11d317d967b2e4b6"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_mesh_shader_return: MethodTooLong \u2014 write_mesh_shader_return runs 109 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 9 over it, 1.09\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":634}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6fec1b41d236c0362335da4e93ddfbeb856e073a853f7f00acb2db2f6e67496"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Writer.write_global_variable: MethodTooLong \u2014 write_global_variable runs 109 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 9 over it, 1.09\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3452}}}],"partialFingerprints":{"codehealthFindingId/v1":"02b6d560ac98237e60e571c14e24858e39ba40f9f6873203ba7cd1e7c751fc2c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ParsingContext.parse_postfix: MethodTooLong \u2014 parse_postfix runs 109 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 9 over it, 1.09\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/expressions.rs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"753784921d124bb7222b1d5a423663d7a8c5fdb481e6b06e92bcd3137ab28fa7"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Interface.populate: MethodTooLong \u2014 populate runs 109 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 9 over it, 1.09\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1219}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d382b8908ee3f02ad2e1e546f24abca2e9d987f37d9785629096a539bf48b1a"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: naga::front::glsl::builtins::inject_double_builtin: FunctionTooLong \u2014 naga::front::glsl::builtins::inject_double_builtin runs 108 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 8 over it, 1.08\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1047}}}],"partialFingerprints":{"codehealthFindingId/v1":"0545177d79c16622e295935260ef9eb9ef5f6cfdfd77074e61512959001572f9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: msl/mod.rs: FileTooLong \u2014 539 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 39 over it, 1.08\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"20e925c02ae10dbe5f63d0b4d9c79e57e4697944a4fa23fd5a3e6398e2643da3"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ConstantEvaluator.try_eval_and_append_impl: MethodTooLong \u2014 try_eval_and_append_impl runs 107 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 7 over it, 1.07\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1240}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3646a2e82d80ea22c002fa99025f991b995c071fbac0d17f6b79bab0f6c8851"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Context: TooManyMethods \u2014 32 methods, declared across 3 files: glsl/context.rs (25), glsl/types.rs (6), glsl/functions.rs (1). The bar is 30 methods; this is 2 over it, 1.07\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe56135b905342cc69995a38d48d3c8f19cb23eb5c44baa5c85baed07166c98c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: RenderPass: TooManyMethods \u2014 32 methods. The bar is 30 methods; this is 2 over it, 1.07\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/render_pass.rs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"127710b396385829badf4899d92cc465bf630138a5f53734d6cc790654ca3e49"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Frontend.constructor_single: MethodTooLong \u2014 constructor_single runs 105 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 5 over it, 1.05\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"c945fb4ac5a5ee035f9f222b2923be96ea9fb43a48e09de42ada79016777151c"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Limits: ClassTooLong \u2014 418 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted), 15 methods, 3 blocks, lines 144-1096. The bar is 400 significant lines; this is 18 over it, 1.05\u00D7 the bar. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/limits.rs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"751f354b8e684e846dfaa7fae01b58cd14eba1e107d7e9c1157bb8b1ed06f094"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Instance.request_adapter: MethodTooLong \u2014 request_adapter runs 104 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 4 over it, 1.04\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dc6c4b2f05622346693c9d3773de33ffab668807c54afa962a8318538498fc5"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFields: Device: TooManyFields \u2014 31 stored fields beside 101 methods. The bar is 30 stored fields; this is 1 over it, 1.03\u00D7 the bar. This is width in DATA, not behaviour: every reader that takes the whole type couples to all of its fields, so a change to any one of them is a change every reader has to be checked against. To reduce it, group the fields that are read together by the same callers into a smaller type of their own, and have this one hold that type as a single member \u2014 each reader then names only the group it uses."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f44b6a8f8d324821331e78d3c2c2fcf6288c1a73284b6ffa87434cc6cd15430"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TypeInner: TooManyMethods \u2014 31 methods, declared across 7 files: proc/type_methods.rs (19), hlsl/conv.rs (3), proc/index.rs (3), lower/conversion.rs (2), \u002B3 more file(s). The bar is 30 methods; this is 1 over it, 1.03\u00D7 the bar. That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/ir/mod.rs"},"region":{"startLine":851}}}],"partialFingerprints":{"codehealthFindingId/v1":"14893e2395105c38c7eb2b3648a2ba33f13109e81db5f4c813d2286c129d2293"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_shader_module_inner: MethodTooLong \u2014 create_shader_module_inner runs 103 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 3 over it, 1.03\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2505}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e0e14299f02d2efbc120020e0f0d8549ba56474d4984ef2fea3cbf459b57d23"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.create_texture_view: MethodTooLong \u2014 create_texture_view runs 103 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 3 over it, 1.03\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":656}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f7d47d3cdb72b168c3101c94f7384b9e99f6e8c08b4b3b127bdcf38d706841b"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_core::command::query::resolve_query_set: FunctionTooLong \u2014 wgpu_core::command::query::resolve_query_set runs 102 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 2 over it, 1.02\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/query.rs"},"region":{"startLine":520}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6df3b69e6751e7711b8b083ec79d07628f16a829394182975981bb6cc18426f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CommandEncoder.set_render_pipeline: MethodTooLong \u2014 set_render_pipeline runs 102 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 2 over it, 1.02\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":872}}}],"partialFingerprints":{"codehealthFindingId/v1":"29df53195887e7620bd3ca87f07069cfcf88813ddcb469e0f5c61a3c22b5a955"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Device.get_acceleration_structure_build_sizes: MethodTooLong \u2014 get_acceleration_structure_build_sizes runs 102 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 2 over it, 1.02\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":2695}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5fcb34077203c5e5c2b4bc01da6a40c2c3e07a47a013a4a19e4beca3c1f4910"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CoreDevice.create_bind_group: MethodTooLong \u2014 create_bind_group runs 102 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 2 over it, 1.02\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1023}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b057fcc8af0d11f7ff0c9de5e24b400ba753e58dd6227e6ef1752cc1d46ed55"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: swapchain/native.rs: FileTooLong \u2014 507 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted). The bar is 500 significant lines; this is 7 over it, 1.01\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/swapchain/native.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fccd58c38599e0fe56562471ddbeff5cd8942db71d2c1c51044e83dc8ff12a9"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Interface.new: MethodTooLong \u2014 new runs 101 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 1 over it, 1.01\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1362}}}],"partialFingerprints":{"codehealthFindingId/v1":"17f74170a6c69a11174bec68ddcd030076c924d0368c03fb5868e088e0f50b8c"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: wgpu_xtask::vendor_web_sys::run_vendor_web_sys: FunctionTooLong \u2014 wgpu_xtask::vendor_web_sys::run_vendor_web_sys runs 101 significant lines (blank, comment-only and punctuation-only lines excluded, and inline test code \u2014 #[cfg(test)] modules and bare #[test] functions \u2014 not counted) in one body. The bar is 100 significant lines; this is 1 over it, 1.01\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"xtask/src/vendor_web_sys.rs"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b1b71142858f181dc3a83626d836e46a91c981eb13aabb4a5122d7ac6de9fd9"}},{"ruleId":"D4","level":"warning","message":{"text":"Edited copy of a member (15 corresponding lines): naga/src/front/wgsl/error.rs:91-107 | naga/src/span.rs:288-305 \u2014 These two members are one piece of code written twice and then edited apart: 15 consecutive lines correspond almost exactly, broken only by small local edits. Most of that correspondence is NOT reported as duplicated blocks below \u2014 the edits cut it into fragments and only the largest of them clear the block floor, so the rows below understate it. The repair is at the members\u0027 grain \u2014 factor the shared implementation into one the two call with their differences as parameters or as an injected step, or, where the difference is systematic (an extra return value, one transport against another), generate one from the other. Left alone, the next edit has to be made twice and the two will drift further apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"c61eeae26207ab2d7b7748e5ad2265ddf021709197fca8d5e1014012aabe60a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (6 members, 50\u002B identical tokens): naga/src/back/dot/mod.rs:65-447 | naga/src/back/glsl/writer.rs:1614-2294 | naga/src/back/msl/writer.rs:3928-4505 | naga/src/back/wgsl/writer.rs:752-1259 | naga/src/valid/analyzer.rs:886-1234 | naga/src/valid/function.rs:730-786 \u2014 These 6 members share a duplicated core: a run of at least 50 identical tokens appears in every one of them. That run is NOT broken out as duplicated-block rows below \u2014 it is what admitted this row, and the blocks below cover only the part of it that clears the block floor, so they understate the correspondence. Read the members as one construct written 6 times. The repair is at the members\u0027 grain \u2014 factor the shared implementation out once and have all of them call it with their differences as parameters or as an injected step, or, where the difference is systematic, generate them from one template. Extracting the individual blocks below is not the same fix: it leaves every body in place and the next edit still has to be made 6 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"73a5a6f529c7b21fdb7e4df2f2ea255d00212f44cee12d11b1c7de6e52086e24"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (5 members, 50\u002B identical tokens): naga/src/front/spv/mod.rs:2160-2189 | naga/src/front/spv/mod.rs:2258-2291 | naga/src/front/spv/mod.rs:2313-2377 | naga/src/front/spv/mod.rs:2383-2464 | naga/src/front/spv/mod.rs:2627-2717 \u2014 These 5 members share a duplicated core: a run of at least 50 identical tokens appears in every one of them. That run is NOT broken out as duplicated-block rows below \u2014 it is what admitted this row, and the blocks below cover only the part of it that clears the block floor, so they understate the correspondence. Read the members as one construct written 5 times. The repair is at the members\u0027 grain \u2014 factor the shared implementation out once and have all of them call it with their differences as parameters or as an injected step, or, where the difference is systematic, generate them from one template. Extracting the individual blocks below is not the same fix: it leaves every body in place and the next edit still has to be made 5 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2160}}}],"partialFingerprints":{"codehealthFindingId/v1":"85dc5cfdfe55168b6fd51b6c91c6a2e61c76c3135165c6634388a9d1a0d59391"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): naga/src/back/hlsl/help.rs:967-972 | naga/src/back/hlsl/help.rs:1031-1036 | naga/src/back/hlsl/help.rs:1091-1096 | naga/src/back/hlsl/help.rs:1169-1174 \u2014 These 4 members share a duplicated core: a run of at least 50 identical tokens appears in every one of them. That run is NOT broken out as duplicated-block rows below \u2014 it is what admitted this row, and the blocks below cover only the part of it that clears the block floor, so they understate the correspondence. Read the members as one construct written 4 times. The repair is at the members\u0027 grain \u2014 factor the shared implementation out once and have all of them call it with their differences as parameters or as an injected step, or, where the difference is systematic, generate them from one template. Extracting the individual blocks below is not the same fix: it leaves every body in place and the next edit still has to be made 4 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":967}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2af1132e9d2d8c1f52239e59b47b4f31f22fe9ce72687014bdafff6a46f8ba8"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): naga/src/front/spv/mod.rs:2134-2154 | naga/src/front/spv/mod.rs:2160-2189 | naga/src/front/spv/mod.rs:2195-2216 | naga/src/front/spv/mod.rs:2222-2252 \u2014 These 4 members share a duplicated core: a run of at least 50 identical tokens appears in every one of them. That run is NOT broken out as duplicated-block rows below \u2014 it is what admitted this row, and the blocks below cover only the part of it that clears the block floor, so they understate the correspondence. Read the members as one construct written 4 times. The repair is at the members\u0027 grain \u2014 factor the shared implementation out once and have all of them call it with their differences as parameters or as an injected step, or, where the difference is systematic, generate them from one template. Extracting the individual blocks below is not the same fix: it leaves every body in place and the next edit still has to be made 4 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2134}}}],"partialFingerprints":{"codehealthFindingId/v1":"c47b7e3a937ac2f1a165a73863b44abb75aae2a637cfb4958a3fb867e0df1b7e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (73\u201374 lines \u00D7 2): naga/src/front/glsl/context.rs:840-912 | naga/src/front/glsl/context.rs:920-993 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":840}}}],"partialFingerprints":{"codehealthFindingId/v1":"339188284e330ff263a3a6148a745dd88ed602e63552b3ca048a03199bad9672"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (44 lines \u00D7 3): wgpu-core/src/device/resource.rs:5096-5139 | wgpu-core/src/device/resource.rs:5148-5191 | wgpu-core/src/device/resource.rs:5198-5241 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":5096}}}],"partialFingerprints":{"codehealthFindingId/v1":"87352b1b8bc276b52d947bb454c6c59c8a9203125a595b275f7e0ccf59f8c0a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (44 lines \u00D7 2): naga/src/back/glsl/writer.rs:2179-2222 | naga/src/back/wgsl/writer.rs:1113-1156 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 135 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2179}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb12150697ab154635369b99416c5e4d12fa6734eb11c3efb0b7eb38e1927bcf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (42 lines \u00D7 2): naga/src/back/spv/mesh_shader.rs:209-250 | naga/src/back/spv/mesh_shader.rs:289-330 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4cfd19134d88afdc5e1586362e82d62b86ecfaa0022cc8c5adc90f035f19b0e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (40 lines \u00D7 2): naga/src/front/spv/next_block.rs:1116-1155 | naga/src/front/spv/next_block.rs:1184-1223 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"d69133d9c57f0e6f43ae9a250f37846a1f5c83979a486678203aa6b24e82c6fc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (37 lines \u00D7 2): naga/src/back/spv/block.rs:1840-1876 | naga/src/back/spv/block.rs:1890-1926 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":1840}}}],"partialFingerprints":{"codehealthFindingId/v1":"b068a9481389f7fc06d2d033a85a6d9cb1ae3c6d0393a32da0e9e349fedb3f4f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (36 lines \u00D7 2): wgpu-types/src/texture/format.rs:1355-1390 | wgpu-types/src/texture/format.rs:1439-1474 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/texture/format.rs"},"region":{"startLine":1355}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f9f45b17d7ab8d9ad11f7307cb07a6cb27c568be4ea1e96a581f380ea888f85"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (33\u201334 lines \u00D7 3): deno_webgpu/compute_pass.rs:127-159 | deno_webgpu/render_bundle.rs:121-153 | deno_webgpu/render_pass.rs:182-215 \u2014 before extracting anything, compare \u0060deno_webgpu/compute_pass.rs\u0060 and \u0060deno_webgpu/render_pass.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 70 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pass.rs"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ce6025b1aa36c1b22c79d63142320f8d1ff4eb926f150747644a12a407dd30c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (33\u201334 lines \u00D7 2): naga/src/front/glsl/builtins.rs:974-1007 | naga/src/front/glsl/builtins.rs:1130-1162 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":974}}}],"partialFingerprints":{"codehealthFindingId/v1":"55fea20e13c1b35c3fc0e1fd757447c2aded594a0caaa5ec320a9c0ed871af35"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): wgpu-core/src/device/queue.rs:1072-1103 | wgpu-core/src/device/queue.rs:1364-1395 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1072}}}],"partialFingerprints":{"codehealthFindingId/v1":"62c5e832602b3ed3a965a5bb105a347e80971682a48514172e9a192358572b3e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (29 lines \u00D7 2): naga/src/back/spv/block.rs:935-963 | naga/src/back/spv/block.rs:1026-1054 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":935}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4e53b9d1faf1c94c3055984ecacf06f0e668a0c8424a4fdd16955180ced6016"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (29 lines \u00D7 2): naga/src/front/glsl/builtins.rs:934-962 | naga/src/front/glsl/builtins.rs:1091-1119 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":934}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6c95342cc8ecfc8a276b9f24c8681640616c5245ce51b443e1568c96144a98d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (28 lines \u00D7 2): naga/src/front/spv/next_block.rs:935-962 | naga/src/front/spv/next_block.rs:1010-1037 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":935}}}],"partialFingerprints":{"codehealthFindingId/v1":"91590e660652e38908d1a3e5f90b0c599fc40793452f0bd1587b5acad69e80b2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26\u201327 lines \u00D7 2): wgpu-hal/src/gles/egl.rs:1405-1430 | wgpu-hal/src/gles/wgl.rs:798-824 \u2014 before extracting anything, compare \u0060wgpu-hal/src/gles/egl.rs\u0060 and \u0060wgpu-hal/src/gles/wgl.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 73 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1405}}}],"partialFingerprints":{"codehealthFindingId/v1":"210fa0a79bc6c98fd28dbae0358b7520bca1c907eaf5d5630afc4c40c446827f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18\u201326 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3767-3784 | naga/src/back/wgsl/writer.rs:1513-1538 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3767}}}],"partialFingerprints":{"codehealthFindingId/v1":"c34ec9d1dff7d0b21432c307c908ee987575a26cb3f3fa5b2838279d1881b263"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): naga/src/front/spv/image.rs:861-886 | naga/src/front/spv/image.rs:906-931 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":861}}}],"partialFingerprints":{"codehealthFindingId/v1":"fde46602b8b7a12519b87092b80a73b551c9a76b3396ee872fc6c365287b853b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): wgpu-core/src/command/bundle.rs:1109-1134 | wgpu-core/src/command/render.rs:2922-2947 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/bundle.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 83 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1109}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbb5fc472e7c6dcf33ad53b339041afb6c49ab6d335e56bec1f16854eca1180d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23\u201325 lines \u00D7 2): wgpu-core/src/command/query.rs:331-353 | wgpu-core/src/command/query.rs:387-411 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/query.rs"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"1664b08577bc62a9f084cad8cf58c040a0b6c5fcc09e9eab46e521a525b2c188"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21\u201324 lines \u00D7 2): naga/src/back/msl/writer.rs:6013-6036 | naga/src/back/msl/writer.rs:6103-6123 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6013}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8069c718978b76b2779de8b98bbae5bf201546767f1fc235832c8f1fc1913c4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20\u201323 lines \u00D7 4): wgpu-core/src/device/resource.rs:5116-5135 | wgpu-core/src/device/resource.rs:5168-5187 | wgpu-core/src/device/resource.rs:5218-5237 | wgpu-core/src/device/resource.rs:5275-5297 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":5116}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cda3dfe6796660cf9bdee094156f2aef253b3e61c0162dc0b4f9d5cebb7c443"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22\u201323 lines \u00D7 3): naga/src/front/glsl/context.rs:668-689 | naga/src/front/glsl/context.rs:874-896 | naga/src/front/glsl/context.rs:955-977 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":668}}}],"partialFingerprints":{"codehealthFindingId/v1":"207ff97e6c6519868a525e4c46217820ccec649da2bcd2ad1118ca8efcdfe049"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 3): naga/src/front/spv/mod.rs:1087-1109 | naga/src/front/spv/mod.rs:1165-1187 | naga/src/front/spv/mod.rs:1240-1262 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1087}}}],"partialFingerprints":{"codehealthFindingId/v1":"58e8341bfc7a3b6043060c79c618eeb8be98d7e5755705ddf3ff3e69559e3fc3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): naga/src/back/hlsl/writer.rs:5018-5040 | naga/src/back/hlsl/writer.rs:5076-5098 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":5018}}}],"partialFingerprints":{"codehealthFindingId/v1":"db6a19db8afd40b98b8bb4c146ef1e416ff577bc7fc69e8df607657d7743d3de"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): naga/src/front/glsl/builtins.rs:1015-1037 | naga/src/front/glsl/builtins.rs:1165-1187 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1015}}}],"partialFingerprints":{"codehealthFindingId/v1":"719b7d11045c19ea1e42d784915a687b40d5c425af0fbe15256a4e82133badde"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): wgpu-core/src/device/queue.rs:1048-1070 | wgpu-core/src/device/queue.rs:1340-1362 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1048}}}],"partialFingerprints":{"codehealthFindingId/v1":"a721e00681eb3c65d7207e26d3a0af683158fcb00b8d2f664ba2b4c78598328b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): naga/src/back/glsl/writer.rs:2236-2257 | naga/src/back/wgsl/writer.rs:1168-1189 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 135 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2236}}}],"partialFingerprints":{"codehealthFindingId/v1":"6949b75c9d79e5734fb028fda67309065f4c5b5d0550523db4a09bcc49089aa0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20\u201322 lines \u00D7 2): naga/src/back/spv/writer.rs:1397-1416 | naga/src/back/spv/writer.rs:1429-1450 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1397}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3084c2a5738dd17ad32ac26754a609f2096613472c6bbe333f68915ce4540f2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): naga/src/front/spv/mod.rs:2443-2464 | naga/src/front/spv/mod.rs:2494-2515 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2443}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5b794d1604b201962fa54ee424d761405b37733034479544a5ec39ed6da92b0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): wgpu-core/src/command/compute.rs:1183-1204 | wgpu-core/src/command/render.rs:3637-3658 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/compute.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":1183}}}],"partialFingerprints":{"codehealthFindingId/v1":"097bc54bdd6dc57c4c16a567213df713ed87cee54f141a7f01cf1d5ee5d7e466"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:315-336 | wgpu-core/src/indirect_validation/draw.rs:190-211 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":315}}}],"partialFingerprints":{"codehealthFindingId/v1":"18b7938e12c2a40e58080ba3793c2d9bdc80767361c5b268b434646502323c4b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): wgpu-hal/src/dx12/suballocation.rs:461-482 | wgpu-hal/src/dx12/suballocation.rs:504-525 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/suballocation.rs"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"629ee1953f80967fa76b1e31b94d846c9290ed9359de1a635f145dccc95edf05"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): naga/src/back/msl/writer.rs:5918-5938 | naga/src/back/msl/writer.rs:6192-6212 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5918}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4a0f778ea12e03f6f69f1404c90a6b0fb55c5927873b9537aa9d76b8a959bbb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201321 lines \u00D7 2): naga/src/back/msl/writer.rs:5997-6011 | naga/src/back/msl/writer.rs:6081-6101 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5997}}}],"partialFingerprints":{"codehealthFindingId/v1":"058194a654e92673a979f6494ab7e760968cb2b46247f1e0f896b7a9fe7a8737"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): naga/src/front/glsl/functions.rs:1037-1057 | naga/src/front/glsl/functions.rs:1126-1146 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":1037}}}],"partialFingerprints":{"codehealthFindingId/v1":"83d15a78a538a3e628a78f96c83d37ccc3eea3ae77434a80ab217c3fc216aa25"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): wgpu-core/src/command/bundle.rs:1239-1259 | wgpu-core/src/command/render.rs:3176-3196 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/bundle.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 83 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1239}}}],"partialFingerprints":{"codehealthFindingId/v1":"f796a4d9b782c822ddfbff1f2a0cbb0b5b23dd9e3199629723b3a8e9f043a2f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): wgpu-hal/src/dx12/suballocation.rs:427-447 | wgpu-hal/src/dx12/suballocation.rs:467-487 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/suballocation.rs"},"region":{"startLine":427}}}],"partialFingerprints":{"codehealthFindingId/v1":"085e2ee71ddb906f46d942e216c9c4740910744c2a33f135624cc802b921f8c3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): wgpu-hal/src/dx12/command.rs:1543-1563 | wgpu-hal/src/dx12/command.rs:1582-1602 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1543}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4e776c7b1858b17646cde5fbd21e60bb24e2fe2e205348156643aa744fdb800"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18\u201320 lines \u00D7 3): naga/src/back/spv/block.rs:1859-1876 | naga/src/back/spv/block.rs:1909-1926 | naga/src/back/spv/image.rs:436-455 \u2014 there are 3 copies across 2 file(s) \u2014 more copies than files, so at least one file holds the block twice. Extract it once into a single shared function every call site can reach and call it from all 3 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":1859}}}],"partialFingerprints":{"codehealthFindingId/v1":"daee17b138310851ba1159571d14d66c0e1024e10d801bd44aee4f9957d9e2e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): naga/src/back/hlsl/help.rs:1617-1636 | naga/src/back/hlsl/help.rs:1682-1701 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1617}}}],"partialFingerprints":{"codehealthFindingId/v1":"379becedada512594c613be277775420637102c255e8feb138bb4860d0c4bfa8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19\u201320 lines \u00D7 2): naga/src/back/spv/block.rs:862-880 | naga/src/back/spv/block.rs:989-1008 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":862}}}],"partialFingerprints":{"codehealthFindingId/v1":"5776ca984f12a0f39e1a2353648ec2aea66e3904f03c45bbc697006007bed2b4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19\u201320 lines \u00D7 2): naga/src/front/glsl/context.rs:662-681 | naga/src/front/glsl/context.rs:724-742 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":662}}}],"partialFingerprints":{"codehealthFindingId/v1":"64c91f2ba4223c93eccb3ef3ed7d8f1ca0f21aa73f9515d248efc6591a49a885"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): wgpu-core/src/command/bundle.rs:463-482 | wgpu-core/src/command/render.rs:2464-2483 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/bundle.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 83 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"faa434ef963ff3d2c2b8d831b2e2657f3fcc1ba303dea6f4633b46b9d052dbc3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): wgpu-core/src/command/ray_tracing.rs:610-629 | wgpu-core/src/command/ray_tracing.rs:955-974 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":610}}}],"partialFingerprints":{"codehealthFindingId/v1":"22bfdb9e22a74c5ec98701914c7759b6b60fdc02ce834b61fd84ce085be7f84c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): wgpu-hal/src/gles/egl.rs:1171-1190 | wgpu-hal/src/gles/wgl.rs:718-737 \u2014 before extracting anything, compare \u0060wgpu-hal/src/gles/egl.rs\u0060 and \u0060wgpu-hal/src/gles/wgl.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 73 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1171}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2184b76c42cce4741da10c66171d949ff3a7148d92b5d3373453b870ca4b40a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2255-2273 | naga/src/back/wgsl/writer.rs:802-820 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2255}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ec11bdb47ca4b080320786b55583360346226215d41fc5454854a39ef749b17"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18\u201319 lines \u00D7 2): wgpu-core/src/command/transfer.rs:1299-1317 | wgpu-core/src/command/transfer.rs:1422-1439 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/transfer.rs"},"region":{"startLine":1299}}}],"partialFingerprints":{"codehealthFindingId/v1":"78c247baab8f8d382b4ff938218a3cc0bfccf9bab571ef8860a81694d6da5d3e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): wgpu-core/src/track/texture.rs:847-865 | wgpu-core/src/track/texture.rs:887-905 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":847}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c67966205a6adebfdab5f6f20e5c1168a68bd4366c9c8ee87dfc853402ffa68"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 3): naga/src/front/spv/next_block.rs:2675-2692 | naga/src/front/spv/next_block.rs:2756-2773 | naga/src/front/spv/next_block.rs:2811-2828 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2675}}}],"partialFingerprints":{"codehealthFindingId/v1":"191e4a034881c072ecf51439140b4375676f896fbdc8ba1ba1aeb2ef175d307d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): deno_webgpu/compute_pass.rs:162-179 | deno_webgpu/render_pass.rs:218-235 \u2014 before extracting anything, compare \u0060deno_webgpu/compute_pass.rs\u0060 and \u0060deno_webgpu/render_pass.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 70 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pass.rs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3b675ae0d68fce21e21ebc2093d1a59024af6db4112994e5eb866ccb736c800"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17\u201318 lines \u00D7 2): naga/src/back/glsl/conv.rs:140-156 | naga/src/back/msl/mod.rs:693-710 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/conv.rs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"af79339654fcbd29ef90c7383b6d5b046daefd6319d754fa678f438def40e202"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201318 lines \u00D7 2): naga/src/back/glsl/writer.rs:2788-2802 | naga/src/back/glsl/writer.rs:4316-4333 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2788}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f4f5cfb5153ec64bf6b5acee3e166fc725643323d363b055f206a2798e7551f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): naga/src/back/hlsl/writer.rs:4230-4247 | naga/src/back/wgsl/writer.rs:1647-1664 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":4230}}}],"partialFingerprints":{"codehealthFindingId/v1":"24e70ed48854eac0e7efcf9c33eab993d006655914610e50a93682f13815ad8b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16\u201318 lines \u00D7 2): naga/src/back/spv/image.rs:881-898 | naga/src/back/spv/image.rs:901-916 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":881}}}],"partialFingerprints":{"codehealthFindingId/v1":"4333a6298fda5241379cf5214c0a97c89a4d44bbc57071beac9ef84a4cd35682"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): naga/src/back/wgsl/writer.rs:396-413 | naga/src/back/wgsl/writer.rs:415-432 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"85f0736d88eed09d95c9c6536b8a4a5e64f93e3eca929328e67cc7e8c1ae8b44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): naga/src/front/wgsl/lower/construction.rs:387-404 | naga/src/front/wgsl/lower/construction.rs:424-441 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/construction.rs"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"42580938711c1cd32e8ebf3ff0a3c162999a12ba088c3d7487e880f02a604034"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): naga/src/valid/function.rs:1634-1651 | naga/src/valid/function.rs:1655-1672 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":1634}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2d585fcc183b78dcb102f6bb6a9d3b6ff5235080d20f9e1c9aad9d68fd8f647"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): naga/src/front/spv/next_block.rs:872-889 | naga/src/front/spv/next_block.rs:976-993 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":872}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbbb1acdd4d4ed3470513c7006a1c1efb85ed42965d8407319089dadc5bcf7f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): naga/src/front/spv/next_block.rs:2450-2467 | naga/src/front/spv/next_block.rs:2495-2512 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2450}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb67ec72eac8ef1df53dbd390a5bb71ea3c768fdb4289d0669ee1e1f1de554e2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17\u201318 lines \u00D7 2): wgpu-core/src/command/memory_init.rs:397-414 | wgpu-core/src/command/memory_init.rs:475-491 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/memory_init.rs"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"fefe9e3fd98cbd0805ec37de43d7f4281e60e1ac8d995e8040443c3fc826e7ff"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): wgpu-core/src/command/mod.rs:222-239 | wgpu-core/src/command/mod.rs:266-283 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"27a40e0b69389873b03881e13bb1feb43e2e8faf94cd698fea841aa354ffd28b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17\u201318 lines \u00D7 2): wgpu-core/src/command/ray_tracing.rs:709-725 | wgpu-core/src/command/ray_tracing.rs:998-1015 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":709}}}],"partialFingerprints":{"codehealthFindingId/v1":"1203039cdb3caa5cd0ccf1e890d50beccc702fc13d27e0d8b08ea4d9078a9899"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): wgpu-core/src/device/resource.rs:4583-4600 | wgpu-core/src/device/resource.rs:5550-5567 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4583}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ab0233320c9fb044ac13863bade3c84da3585f95e1d897b5bd5f42060f3f9ab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17\u201318 lines \u00D7 2): wgpu-core/src/track/texture.rs:1282-1299 | wgpu-core/src/track/texture.rs:1318-1334 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1282}}}],"partialFingerprints":{"codehealthFindingId/v1":"626b1a55c0cfa4e2c50c014c75953227989ab8bc6d51ff45dcd318c6c605b711"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 3): wgpu-hal/src/dx12/suballocation.rs:292-308 | wgpu-hal/src/dx12/suballocation.rs:331-347 | wgpu-hal/src/dx12/suballocation.rs:370-386 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/suballocation.rs"},"region":{"startLine":292}}}],"partialFingerprints":{"codehealthFindingId/v1":"58198b2a06b1f6bdd37e23453d9dbd66480a83a532e71b592296b535455625a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 3): wgpu-hal/src/gles/egl.rs:1478-1494 | wgpu-hal/src/gles/web.rs:471-487 | wgpu-hal/src/gles/wgl.rs:884-900 \u2014 before extracting anything, compare \u0060wgpu-hal/src/gles/egl.rs\u0060 and \u0060wgpu-hal/src/gles/wgl.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 73 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1478}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3fc32b8d99a3474099d7e8830d96d118342274d1fd6cb12634f5eab8eb881dc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201317 lines \u00D7 2): naga/src/back/glsl/writer.rs:3729-3740 | naga/src/back/glsl/writer.rs:3742-3758 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3729}}}],"partialFingerprints":{"codehealthFindingId/v1":"cea6ff8b1593869f18088955537e6fe732ba54a4ef158fb4d150cfcdc2959d0a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): naga/src/back/spv/writer.rs:2793-2809 | naga/src/back/spv/writer.rs:2825-2841 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2793}}}],"partialFingerprints":{"codehealthFindingId/v1":"2392ed0ff231133c2f66f51bd4c8612e5f10cea0689cdd16c5796219a84550c9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): naga/src/front/glsl/functions.rs:1238-1254 | naga/src/front/glsl/functions.rs:1291-1307 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":1238}}}],"partialFingerprints":{"codehealthFindingId/v1":"079767957af99cffc1f705a61e4e3ac730975ba3015a8bb9cfb74a7004ac0390"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): naga/src/valid/interface.rs:595-611 | naga/src/valid/interface.rs:613-629 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":595}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdaed839e7e415be05822de75b1895e886ef95971c30331620057c404e1b311f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16\u201317 lines \u00D7 2): wgpu-core/src/device/resource.rs:837-852 | wgpu-core/src/device/resource.rs:858-874 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":837}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd6c063c59e43b6f6de556b8e4fdbafe660cf7099a1fcf55b1c95ff0e14fb50c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201317 lines \u00D7 2): wgpu-core/src/device/resource.rs:3491-3507 | wgpu-core/src/device/resource.rs:3608-3619 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":3491}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbeef08b68b326a6094f3cc0b056e038da8bb23baf6ee23e43b77389c8e8aa7d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 3): wgpu/src/backend/webgpu.rs:3716-3731 | wgpu/src/backend/webgpu.rs:3812-3827 | wgpu/src/backend/webgpu.rs:4099-4114 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":3716}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2a64bc3cac4ffd4b98e787eb53a93e82304205418ab6aee7fd66a5e27065656"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/back/glsl/writer.rs:1622-1637 | naga/src/back/hlsl/writer.rs:2211-2226 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1622}}}],"partialFingerprints":{"codehealthFindingId/v1":"193e1f1262162bc744970a6918fb0183ca39eb8a85c3d9ea7d82c634b3fab41b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/back/hlsl/help.rs:1401-1416 | naga/src/back/hlsl/help.rs:1443-1458 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1401}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d166931e288c4414b66691542cbb4678098b4e5b3ff4a870b134fc46a6d1d77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/back/spv/image.rs:623-638 | naga/src/back/spv/image.rs:646-661 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/image.rs"},"region":{"startLine":623}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8b84b66eff5a08824283fea0c10d69343b8eb402e467eaad59d1a85e148d001"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/back/spv/mesh_shader.rs:912-927 | naga/src/back/spv/mesh_shader.rs:935-950 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":912}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b4c83044c146133e5e07308fe071a3087caac8388559f529dee558309dee3c2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201316 lines \u00D7 2): naga/src/back/wgsl/writer.rs:2067-2082 | naga/src/back/wgsl/writer.rs:2124-2135 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":2067}}}],"partialFingerprints":{"codehealthFindingId/v1":"631dff3d3c38f9934d7d0794d03310ced17a846f8d26c6e1333959b0c8f0e3bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/front/glsl/parser.rs:274-289 | naga/src/front/glsl/parser.rs:352-367 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"b942fda456576996cc93d65974565a870b4035eabe5930822089a653bae2563e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/valid/interface.rs:537-552 | naga/src/valid/interface.rs:554-569 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":537}}}],"partialFingerprints":{"codehealthFindingId/v1":"7845f2803a0977b6605c76bcfa7b2733dbfefa28a3c4e38a4d0ffc393b71c6d7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201316 lines \u00D7 2): naga/src/front/spv/next_block.rs:501-515 | naga/src/front/spv/next_block.rs:568-583 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":501}}}],"partialFingerprints":{"codehealthFindingId/v1":"66a117bae73fc386390a44dffa4ef2bfb62c9e1bb06f585bfbb95df07e9e9fad"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201316 lines \u00D7 2): wgpu-core/src/device/resource.rs:2612-2626 | wgpu-core/src/device/resource.rs:2771-2786 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2612}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c18894467b9cd4a7b4fff69dac56dc24ac1200a3e7cde9383baa8cb1f8ef16d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:88-103 | wgpu-core/src/indirect_validation/draw.rs:555-570 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"7719019e0bbe12f2a5df002c5d32a8f444d1009a10e9d2477dfbbfdbd95d06fb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201316 lines \u00D7 2): wgpu-core/src/track/texture.rs:579-594 | wgpu-core/src/track/texture.rs:620-634 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":579}}}],"partialFingerprints":{"codehealthFindingId/v1":"95e5680e410979d980644b18eb7e5c54cb61b688bead6aa21b5ecbbcd736db70"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): wgpu-core/src/track/texture.rs:1256-1271 | wgpu-core/src/track/texture.rs:1500-1515 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1256}}}],"partialFingerprints":{"codehealthFindingId/v1":"4db24d2dbb497631f18191d0f282fd1507c206c67369f1614480a5cc222682fa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): wgpu-hal/src/metal/conv.rs:443-458 | wgpu-hal/src/metal/conv.rs:474-489 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/conv.rs"},"region":{"startLine":443}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b461d962adf5fe7b7c411dd289eace8f809bb635a252e948f46d1cd06239834"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14\u201315 lines \u00D7 3): naga/src/back/hlsl/help.rs:1400-1414 | naga/src/back/hlsl/help.rs:1442-1456 | naga/src/back/hlsl/help.rs:1511-1524 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1400}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7f4f88b2569f3acbb7e10690f203425df64278ff0f163a2a797551bb44f741b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 3): naga/src/front/spv/mod.rs:2140-2154 | naga/src/front/spv/mod.rs:2175-2189 | naga/src/front/spv/mod.rs:2202-2216 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2140}}}],"partialFingerprints":{"codehealthFindingId/v1":"26112945b628ca37b4d199ef6ca3fe1aea651ea89c211c44f24e7bf3dfcfce52"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/back/glsl/writer.rs:244-258 | naga/src/back/msl/writer.rs:4883-4897 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 7 separate duplicated blocks between them, totalling at least 66 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"443cc60d3f1785d5f1311fbabfb22560777fefd05065976e9db65df5ddb2464d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/back/glsl/writer.rs:2486-2500 | naga/src/back/wgsl/writer.rs:1582-1596 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 135 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2486}}}],"partialFingerprints":{"codehealthFindingId/v1":"6328ec7d1946e3e171347df11fb101ad8ffe92518a0e9d82757a38188a8f81df"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/back/hlsl/help.rs:1132-1146 | naga/src/back/hlsl/help.rs:1209-1223 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1132}}}],"partialFingerprints":{"codehealthFindingId/v1":"97ac59890585f36fd25020d5d6343c80ee93d7c053e063c949216fec0e9ae567"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/back/hlsl/help.rs:1638-1652 | naga/src/back/hlsl/help.rs:1703-1717 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1638}}}],"partialFingerprints":{"codehealthFindingId/v1":"50f63eff7dbcec27e6ca15e612dc81775660aa8ddf822e9bbbfc5e7fd2696909"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2936-2950 | naga/src/back/hlsl/writer.rs:3000-3014 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2936}}}],"partialFingerprints":{"codehealthFindingId/v1":"276b163e625279783d09435ccd6f7fbbec05e85c19a2ac2c46ffeed4a7e7da5b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201315 lines \u00D7 2): naga/src/back/msl/writer.rs:3137-3151 | naga/src/back/msl/writer.rs:3156-3167 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3137}}}],"partialFingerprints":{"codehealthFindingId/v1":"d903152390df2a0bf9de6803c63668631f48e61ba98aafef67f35abfcba255eb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201315 lines \u00D7 2): naga/src/back/spv/block.rs:2914-2925 | naga/src/back/spv/block.rs:3880-3894 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2914}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e40d5909270f0673db36e77abbfef847574b86fbea936cffb9291638974680f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/front/glsl/builtins.rs:666-680 | naga/src/front/glsl/builtins.rs:1061-1075 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":666}}}],"partialFingerprints":{"codehealthFindingId/v1":"abe4919233907868bdb944e5a56619e8b80f865a433db2a9bc2bee7bcdb40bea"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/front/glsl/builtins.rs:1448-1462 | naga/src/front/glsl/builtins.rs:1477-1491 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1448}}}],"partialFingerprints":{"codehealthFindingId/v1":"ada3d836e41ce5c08479dd09e19023e81bb68bb41b6d629c33562ab6b4b2fed4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/valid/analyzer.rs:450-464 | naga/src/valid/analyzer.rs:466-480 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":450}}}],"partialFingerprints":{"codehealthFindingId/v1":"035754772985cd9c4333c69ba2d5dc080981565778a2277ee4a80e63cd213302"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/valid/expression.rs:801-815 | naga/src/valid/expression.rs:816-830 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":801}}}],"partialFingerprints":{"codehealthFindingId/v1":"26628fd26b15eed1634ca35e7c4d3a5c72c297b61a6741a1c218c9b1c87ccbaa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): naga/src/valid/interface.rs:505-519 | naga/src/valid/interface.rs:521-535 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":505}}}],"partialFingerprints":{"codehealthFindingId/v1":"77b351bc03564a380938e3c5bf22237bd5386fda9ee18ad67e5ec2fd2b568638"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14\u201315 lines \u00D7 2): naga/src/front/spv/next_block.rs:917-930 | naga/src/front/spv/next_block.rs:999-1013 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"48ab205924dddeb1d317db664ff0e415157f4092b9f153f2d02dc4cd831ce262"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): wgpu/src/backend/webgpu.rs:3836-3850 | wgpu/src/backend/webgpu.rs:4123-4137 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":3836}}}],"partialFingerprints":{"codehealthFindingId/v1":"26eeaed4579c8f590322623e933f0b25baf1e228fc8093db544558da127602f4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13\u201315 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:196-208 | wgpu-core/src/indirect_validation/draw.rs:130-144 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"108ff32399707e9d204ba7d9eeecc095b13efec6f8a337bf69cf8195c7876f2e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14\u201315 lines \u00D7 2): wgpu-hal/src/dx12/command.rs:228-242 | wgpu-hal/src/dx12/command.rs:254-267 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc00a8e3140d70648c22c5353cc5360c2de88687029841b174b63c0d8259dfe7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13\u201314 lines \u00D7 4): wgpu-core/src/device/resource.rs:5103-5115 | wgpu-core/src/device/resource.rs:5155-5167 | wgpu-core/src/device/resource.rs:5205-5217 | wgpu-core/src/device/resource.rs:5260-5273 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":5103}}}],"partialFingerprints":{"codehealthFindingId/v1":"2305a6c8c2592e984e68d5126198e577824f436771f0759b05f50b5c019e41b7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): naga/src/front/wgsl/lower/mod.rs:3796-3809 | naga/src/front/wgsl/lower/mod.rs:3819-3832 | naga/src/front/wgsl/lower/mod.rs:3842-3855 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3796}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c64403205a46ed2bb154b0658bd089d2d9084f57e5e7bdf2ec9d502f3bdc34b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): deno_webgpu/device.rs:476-489 | deno_webgpu/device.rs:516-529 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/device.rs"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf19d2e3f4a51b6ccfba8d4afcb678309039953e89a94ca43aa16e360fb8c585"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): naga/src/back/spv/block.rs:3267-3280 | naga/src/back/spv/block.rs:3367-3380 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":3267}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f1629298c11590c6f3be5f753acdae08d1dcc49eb217107749f96a7bec380c7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): naga/src/back/spv/ray/mod.rs:68-81 | naga/src/back/spv/ray/mod.rs:102-115 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/mod.rs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaec262e4022ab681672dad894b22563c101c84df0301959431996277e998b83"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): naga/src/common/wgsl/types.rs:275-288 | naga/src/common/wgsl/types.rs:292-305 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/wgsl/types.rs"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"f530e97bc05559026a017f6d0cc004c06754cda5ed4123566deb2b2d2eab46df"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): naga/src/front/wgsl/lower/construction.rs:194-207 | naga/src/front/wgsl/lower/construction.rs:216-229 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/construction.rs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"14c63e344ddc0d6985bbc62e82cc564bfaabcafd810fea13d3a176281a632e41"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13\u201314 lines \u00D7 2): wgpu-core/src/command/mod.rs:1126-1139 | wgpu-core/src/command/mod.rs:1218-1230 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":1126}}}],"partialFingerprints":{"codehealthFindingId/v1":"25d33f8ed1bd9010e7003eea042c7c22d746ac99e9600d543af17a0cb2fd25ad"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): wgpu-core/src/command/transfer.rs:1243-1256 | wgpu-core/src/command/transfer.rs:1360-1373 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/transfer.rs"},"region":{"startLine":1243}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a1d142c2ae1cf875f085223fe7c904b35bc84098c7003c505f5b5f3f0f2fd42"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): naga/src/back/glsl/writer.rs:2487-2499 | naga/src/back/hlsl/writer.rs:4106-4118 | naga/src/back/wgsl/writer.rs:1583-1595 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2487}}}],"partialFingerprints":{"codehealthFindingId/v1":"da997ff5bb9a29ed07c66c95e2e65278182c11f69c2c53648ae31e4e5888d04b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201313 lines \u00D7 3): naga/src/front/wgsl/parse/number.rs:188-198 | naga/src/front/wgsl/parse/number.rs:217-229 | naga/src/front/wgsl/parse/number.rs:275-285 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e7a63b7ba5d376e5fc47d7dd73a09f3adb137ae95749b481cbb86bca3506a40"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201313 lines \u00D7 3): wgpu-core/src/command/render.rs:4236-4247 | wgpu-core/src/command/render.rs:4285-4297 | wgpu-core/src/command/render.rs:4338-4350 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":4236}}}],"partialFingerprints":{"codehealthFindingId/v1":"2df8981051017448a5376f0a9a91c2927f3bfdf0712ff677dd73d6aa53c81e16"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): deno_webgpu/webidl.rs:54-66 | deno_webgpu/webidl.rs:164-176 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"12fb21f3258de90d59ec2d21bb1cf1289d04146e46cf5d172826ee6dde391a2c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga/src/back/hlsl/help.rs:2231-2243 | naga/src/back/hlsl/help.rs:2249-2261 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":2231}}}],"partialFingerprints":{"codehealthFindingId/v1":"e835086edd60b5ad13c396931e0c5594af69c8856c1feba4e215de382a963883"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga/src/back/hlsl/storage.rs:357-369 | naga/src/back/hlsl/storage.rs:377-389 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc7aa5ccaab1a3c35b4d3a33bc7f797eb29ae4fbba74fca0d759ecc89dff564f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3326-3338 | naga/src/back/msl/writer.rs:1867-1879 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 4 separate duplicated blocks between them, totalling at least 37 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3326}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b2794bb00dc187200ccd72aae7439bde0392eebfa6830753a93647ead481cb1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201313 lines \u00D7 2): naga/src/back/spv/index.rs:375-387 | naga/src/back/spv/index.rs:439-450 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/index.rs"},"region":{"startLine":375}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1ea138f5d6767cb6aee4ce638dcbffb3e781bccc37e45786188d8a047f8c78e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga/src/back/spv/mesh_shader.rs:790-802 | naga/src/back/spv/mesh_shader.rs:861-873 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"75597e2ef89984a2e4c25720db2fe6648ba7b752ef3ad76282385b0df465e8c6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga/src/common/diagnostic_debug.rs:57-69 | naga/src/common/diagnostic_display.rs:61-73 \u2014 before extracting anything, compare \u0060naga/src/common/diagnostic_debug.rs\u0060 and \u0060naga/src/common/diagnostic_display.rs\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 36 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/diagnostic_debug.rs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"e02a2f53dae2859a83fb123d35b955f8a1160208048023eacb916d90f416173d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:3515-3527 | naga/src/front/wgsl/lower/mod.rs:3554-3566 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3515}}}],"partialFingerprints":{"codehealthFindingId/v1":"11ebee4337445f820a4c1f86dd54f15ba7ab249a9398e562336d18e2da6ba997"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): wgpu-core/src/command/render.rs:3256-3268 | wgpu-core/src/command/render.rs:3476-3488 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":3256}}}],"partialFingerprints":{"codehealthFindingId/v1":"8234b4b0bd902645707cd7a05a36977a3b966b00f81f1555310788d28214fec0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): wgpu-core/src/pipeline.rs:275-287 | wgpu-core/src/pipeline.rs:326-338 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"efd4ab47ab055de1f71e9852e4c7dd3fe88f72981ef28da937b30cc19c098ecd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): wgpu-core/src/track/texture.rs:1521-1533 | wgpu-core/src/track/texture.rs:1570-1582 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1521}}}],"partialFingerprints":{"codehealthFindingId/v1":"35a3389b87cebe1a44a9375d6ab5ff703637056411ef52b48ba4771ca98ec3b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): wgpu-hal/src/vulkan/device.rs:2362-2374 | wgpu-hal/src/vulkan/device.rs:2379-2391 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":2362}}}],"partialFingerprints":{"codehealthFindingId/v1":"309b92b292ab4f1e20107800c902258f0f3f8bf1e6b8cffe128a70a2cea9d8c3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): deno_webgpu/compute_pass.rs:168-179 | deno_webgpu/render_bundle.rs:162-173 | deno_webgpu/render_pass.rs:224-235 \u2014 before extracting anything, compare \u0060deno_webgpu/compute_pass.rs\u0060 and \u0060deno_webgpu/render_pass.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 70 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pass.rs"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c037fb9a2790b45b451eccda8ab52c658462ffd0c73bdee5810fb9cae172a92"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): naga/src/back/spv/mesh_shader.rs:85-96 | naga/src/back/spv/mesh_shader.rs:108-119 | naga/src/back/spv/mesh_shader.rs:121-132 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc16977974cc6268e2678540f75f0fbb1565e228065d053e9fa3070b66b88398"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): naga/src/front/glsl/builtins.rs:349-360 | naga/src/front/glsl/builtins.rs:373-384 | naga/src/front/glsl/builtins.rs:412-423 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"0517d178b8de749bf2b3203f2e845ad5da8320e518257666cfaed6a262f77ab7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): naga/src/valid/interface.rs:479-490 | naga/src/valid/interface.rs:492-503 | naga/src/valid/interface.rs:631-642 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":479}}}],"partialFingerprints":{"codehealthFindingId/v1":"400485255dc3e8c21a93869d3e6214776b3fe3e7ab8a34a3d9d9d01680a68fe9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): naga/src/back/msl/ray.rs:419-430 | naga/src/back/msl/ray.rs:473-484 | naga/src/back/msl/ray.rs:503-514 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/ray.rs"},"region":{"startLine":419}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d177c39f8b8ee08eb123d5ef3ccdac3b0d5c6da4a862559302ce9b4392f18c1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): deno_webgpu/buffer.rs:167-178 | deno_webgpu/queue.rs:86-97 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/buffer.rs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd25234cbbcf8d1ddca7b85a929b3d2c46c83d210d8b341ee0e4bbcfd9afe559"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/back/glsl/writer.rs:2474-2485 | naga/src/back/wgsl/writer.rs:1569-1580 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 135 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2474}}}],"partialFingerprints":{"codehealthFindingId/v1":"9723a2aea73559501456a9551121074d4aeef17579028686579e9464efd04e83"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/back/wgsl/writer.rs:1623-1634 | naga/src/back/wgsl/writer.rs:1697-1708 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":1623}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c3cb5070218d05e8dd5486240f497ab95d63b41f3956880a92ea0751e6e50e8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/common/diagnostic_debug.rs:74-85 | naga/src/common/diagnostic_display.rs:112-123 \u2014 before extracting anything, compare \u0060naga/src/common/diagnostic_debug.rs\u0060 and \u0060naga/src/common/diagnostic_display.rs\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 36 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/diagnostic_debug.rs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"89e900e5bf225cffe383c5d70c0712e864f19d577d44f50077aedda40a863389"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/front/glsl/builtins.rs:1305-1316 | naga/src/front/glsl/builtins.rs:1416-1427 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1305}}}],"partialFingerprints":{"codehealthFindingId/v1":"8caf0661d84a341bbd76dd08ba9192d09b57bd731e573729de3d2b0f429d40a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/front/glsl/functions.rs:1076-1087 | naga/src/front/glsl/functions.rs:1158-1169 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":1076}}}],"partialFingerprints":{"codehealthFindingId/v1":"349b5a95a67a6314e557e5fb3d320eaa97f5b80144e9eceeea8aef503780aba5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201312 lines \u00D7 2): naga/src/front/spv/mod.rs:2877-2888 | naga/src/front/spv/mod.rs:2900-2910 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2877}}}],"partialFingerprints":{"codehealthFindingId/v1":"a87a03b7f20d9a54d9204fa34b474146745ff51b5d28e357e3f74a81f03b0e25"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:1713-1724 | naga/src/front/wgsl/lower/mod.rs:1728-1739 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1713}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2144e7de6d0b299298c0b3b209b25062cfd7a1fae3c268e4244099308f9c2e7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): naga/src/valid/function.rs:712-723 | naga/src/valid/function.rs:775-786 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":712}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a35dfbff93b871fe4aa349b049684643a2d40b0143e92022750bf9e670057b3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): player/src/lib.rs:1014-1025 | player/src/lib.rs:1169-1180 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":1014}}}],"partialFingerprints":{"codehealthFindingId/v1":"203a8f0965be9ac0be7e551324c295963ffad42e9e1bd090748db7ef0e457d25"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu/src/api/command_encoder.rs:432-443 | wgpu/src/api/compute_pass.rs:139-150 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/command_encoder.rs"},"region":{"startLine":432}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a4aa00d72f8b136abf2fa7fc653c2639b98f09b4ab40021cc3d1ab5f1a27ce1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu/src/api/render_bundle_encoder.rs:122-133 | wgpu/src/api/render_pass.rs:136-147 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/render_bundle_encoder.rs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"3192b07a9f9769fc0ecb2b0b852fa55894cc6b90306437981a45d56fffa01c82"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu-core/src/device/resource.rs:464-475 | wgpu-core/src/device/resource.rs:483-494 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":464}}}],"partialFingerprints":{"codehealthFindingId/v1":"86453cef502b6bb79356c26d4243949c8d73d2579a802541a541fa7b56c5883d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:150-161 | wgpu-core/src/indirect_validation/dispatch.rs:176-187 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce8c50754ea01eedcbe06586cfc0f51a0f3a2187877997ba7127472cbe306788"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu-core/src/track/texture.rs:1231-1242 | wgpu-core/src/track/texture.rs:1483-1494 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1231}}}],"partialFingerprints":{"codehealthFindingId/v1":"92120f2bf6530f67a9ed2f51402f53cd58673167fd58df8326d8313fe543182e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu-hal/src/metal/command.rs:400-411 | wgpu-hal/src/metal/command.rs:415-426 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":400}}}],"partialFingerprints":{"codehealthFindingId/v1":"245d0ff25459995c8d9354943a9f753e324f25a2bc7e4433ecd44c4a8c0822de"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): wgpu-types/src/write_only.rs:539-550 | wgpu-types/src/write_only.rs:552-563 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/write_only.rs"},"region":{"startLine":539}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d36f0c555da19927e1348cae9923a4f911b3b52c31a70b76653133fdbace8dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 6): wgpu-hal/src/gles/queue.rs:499-509 | wgpu-hal/src/gles/queue.rs:514-524 | wgpu-hal/src/gles/queue.rs:529-539 | wgpu-hal/src/gles/queue.rs:541-553 | wgpu-hal/src/gles/queue.rs:559-569 | wgpu-hal/src/gles/queue.rs:574-584 \u2014 all 6 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"f323a1044cb673fc65d3aa2983c6a65bdeda64b60f9a6337b985c20349ff5ec9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 4): wgpu-hal/src/gles/queue.rs:627-637 | wgpu-hal/src/gles/queue.rs:640-650 | wgpu-hal/src/gles/queue.rs:653-663 | wgpu-hal/src/gles/queue.rs:679-689 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":627}}}],"partialFingerprints":{"codehealthFindingId/v1":"47db777aadd1a3890c9f712621e686201e1b4ca13b0f2f97d27e417c8f5f28d7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9\u201311 lines \u00D7 3): naga/src/back/hlsl/writer.rs:3459-3467 | naga/src/back/wgsl/writer.rs:1627-1637 | naga/src/back/wgsl/writer.rs:1701-1711 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3459}}}],"partialFingerprints":{"codehealthFindingId/v1":"57b9e48daa0feb96ff0cfde500a074b1e9053882edba1af51813acb8451521b6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10\u201311 lines \u00D7 3): naga/src/front/glsl/parser.rs:273-282 | naga/src/front/glsl/parser.rs:351-360 | naga/src/front/glsl/parser.rs:380-390 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e2499a622f1d379ef2c6cc9419dbeeed82b41c40aabc635fffb28ec063e3159"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u201311 lines \u00D7 3): naga/src/front/spv/next_block.rs:964-974 | naga/src/front/spv/next_block.rs:1098-1106 | naga/src/front/spv/next_block.rs:2963-2970 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":964}}}],"partialFingerprints":{"codehealthFindingId/v1":"6abbdd5e089875d86412820140df1b9778efe3ea2a1cb619236c46cdc9dfd2b7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/glsl/writer.rs:3184-3194 | naga/src/back/msl/writer.rs:2594-2604 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 7 separate duplicated blocks between them, totalling at least 66 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3184}}}],"partialFingerprints":{"codehealthFindingId/v1":"31f9e4c701852d1e545df878499575c8dc2cdf0abbe529113c59bd24c0cb0d84"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/hlsl/writer.rs:1894-1904 | naga/src/back/wgsl/writer.rs:572-582 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1894}}}],"partialFingerprints":{"codehealthFindingId/v1":"db8da7c75192c0c7c4392aa29519c30f87e6a4f492204f09fa632ed8f4c0d877"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3560-3570 | naga/src/back/hlsl/writer.rs:3583-3593 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3560}}}],"partialFingerprints":{"codehealthFindingId/v1":"032e57e2eb7ef0c3d43036de47cb36786a0cc48564ab5572b043018c14ea881a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/hlsl/writer.rs:4532-4542 | naga/src/back/wgsl/writer.rs:1903-1913 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":4532}}}],"partialFingerprints":{"codehealthFindingId/v1":"474bd6b44f340a160355d7366d40203ee9f228b2391449364c5156d118cfa126"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/pipeline_constants.rs:576-586 | naga/src/back/pipeline_constants.rs:646-656 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":576}}}],"partialFingerprints":{"codehealthFindingId/v1":"067719c5803505b37dd861e78bb082d03d82a0e0ae5462eb55816f23c6a4f9d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10\u201311 lines \u00D7 2): naga/src/back/spv/mesh_shader.rs:468-478 | naga/src/back/spv/mesh_shader.rs:491-500 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mesh_shader.rs"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"022bd951b066372a9113b077c1a7cfa2851dcde5b969523c8337b6ccb7fcecb2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/spv/writer.rs:2228-2238 | naga/src/back/spv/writer.rs:2240-2250 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":2228}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0ccc9d3c23ebbacd8e6bc0d0b12ff95f443ebe6a086e4a19f41b15ecc1a2688"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/common/diagnostic_debug.rs:25-35 | naga/src/common/diagnostic_display.rs:80-90 \u2014 before extracting anything, compare \u0060naga/src/common/diagnostic_debug.rs\u0060 and \u0060naga/src/common/diagnostic_display.rs\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 36 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/common/diagnostic_debug.rs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"80c42d71119bae21a10a17a0263a88e9f8b8d42b7d7d2488be8d2d66db28e007"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/front/glsl/builtins.rs:269-279 | naga/src/front/glsl/builtins.rs:298-308 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b8b610e4ef9d5a08e9ff5b15fa87c5fe3a06f36c351e1be787c086b7a8ebba5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/proc/constant_evaluator.rs:3048-3058 | naga/src/proc/constant_evaluator.rs:3093-3103 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":3048}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1c0e24264d3a8ccdcbdbdaf0575a976d53acd4abe44074410cc8b0d2d24c7a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/valid/function.rs:1565-1575 | naga/src/valid/function.rs:1776-1786 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":1565}}}],"partialFingerprints":{"codehealthFindingId/v1":"13022bcddac959887833ad756f55529c915e23555130c396fa50031dd7c14067"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/valid/interface.rs:571-581 | naga/src/valid/interface.rs:583-593 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"7938d4b723dc5e0b3375c03a4b6e918ed781689c29efc119afff10cc7e64d427"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/valid/interface.rs:1391-1401 | naga/src/valid/interface.rs:1441-1451 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":1391}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3029a3c56bebc3770943f6d45772bd228726aab3dcdd0aef8431c08b7a1ed39"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/front/glsl/types.rs:107-117 | naga/src/front/glsl/types.rs:148-158 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/types.rs"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"5923317545933665571a83569e8dfa644a0e062f7c99009629a8bf611078f2bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu/src/backend/webgpu.rs:2169-2179 | wgpu/src/backend/webgpu.rs:2210-2220 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":2169}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a0487727278a2ec0464d5e96a0362bf0edab312e856b8b0b9230bd6c81c86f7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu/src/backend/wgpu_core.rs:1248-1258 | wgpu/src/backend/wgpu_core.rs:1331-1341 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1248}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a1e048097c58c50fad97a5258add4d1e22c158565bfe86daa53a0185cdfc277"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u201311 lines \u00D7 2): wgpu/src/backend/wgpu_core.rs:2053-2063 | wgpu/src/backend/wgpu_core.rs:2105-2112 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":2053}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5b5d9bdbf12df482c8af16c55d151ad4bad30978250b9b2c19499577f33ccee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu/src/dispatch.rs:898-908 | wgpu/src/dispatch.rs:1050-1060 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/dispatch.rs"},"region":{"startLine":898}}}],"partialFingerprints":{"codehealthFindingId/v1":"de9235324d719ee52f49f3fc3452f24cc8b7628406bf55d54e8c1dca3e3f01ef"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-core/src/track/buffer.rs:394-404 | wgpu-core/src/track/buffer.rs:428-438 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/buffer.rs"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"109b482a781711858330e4691e58ffc2288477501046fd7b721145f1f59e87d2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-hal/src/metal/command.rs:1329-1339 | wgpu-hal/src/metal/command.rs:1445-1455 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1329}}}],"partialFingerprints":{"codehealthFindingId/v1":"05229e881a015519182f34660cc44879e57d67a0be4eb6e419be4c63c23bc792"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-hal/src/gles/queue.rs:614-624 | wgpu-hal/src/gles/queue.rs:666-676 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":614}}}],"partialFingerprints":{"codehealthFindingId/v1":"108a41026c31131eb2e320963458cc9ceea8fe722ee1f05b5ff8022e88f23987"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6\u201310 lines \u00D7 10): naga/src/front/spv/next_block.rs:462-468 | naga/src/front/spv/next_block.rs:539-545 | naga/src/front/spv/next_block.rs:1073-1078 | naga/src/front/spv/next_block.rs:1105-1110 | naga/src/front/spv/next_block.rs:1175-1180 | naga/src/front/spv/next_block.rs:1270-1275 | naga/src/front/spv/next_block.rs:1484-1490 | naga/src/front/spv/next_block.rs:2364-2373 | naga/src/front/spv/next_block.rs:2715-2721 | naga/src/front/spv/next_block.rs:2786-2792 \u2014 all 10 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6d84c61bdba7d3be60baa572d6f3e07fab9ae340c1650d7044f036c0d133ea2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 4): naga/src/front/spv/mod.rs:2140-2149 | naga/src/front/spv/mod.rs:2175-2184 | naga/src/front/spv/mod.rs:2202-2211 | naga/src/front/spv/mod.rs:2238-2247 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2140}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ceee6432625115c2f81b190b3145dfe90d7467fa0164b6242c8c4fbd6d3405a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u201310 lines \u00D7 3): naga/src/back/glsl/writer.rs:847-854 | naga/src/back/hlsl/writer.rs:233-240 | naga/src/back/msl/writer.rs:3706-3715 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":847}}}],"partialFingerprints":{"codehealthFindingId/v1":"471f884ce7629690723afc018bb31d049e07ff6e31093df94f9c82704e2b2b09"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): naga/src/back/hlsl/writer.rs:3394-3403 | naga/src/back/hlsl/writer.rs:3426-3435 | naga/src/back/hlsl/writer.rs:3439-3448 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3394}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ef36a1b35f93dc792c4af9b83a1f85362a9235ce9c296ec87de5431d057d70b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/glsl/writer.rs:1676-1692 | naga/src/back/hlsl/writer.rs:2242-2251 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1676}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1280b57daac1a5e6a4d892e2d0b3c5a44db13d4451a19200ae980d028977db8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/msl/mod.rs:599-608 | naga/src/back/msl/mod.rs:620-629 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":599}}}],"partialFingerprints":{"codehealthFindingId/v1":"eacd79832e7067927176d9cf6e0037ab2cfd1d23cc5cd13dbc51eb26a4d018a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/msl/writer.rs:6089-6098 | naga/src/back/msl/writer.rs:6318-6327 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6089}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ef146b7f27102bc1a42f96550f48eee8e2e8722554a4fc612bab707852cea1f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u201310 lines \u00D7 2): naga/src/back/spv/block.rs:3906-3915 | naga/src/back/spv/block.rs:4262-4268 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":3906}}}],"partialFingerprints":{"codehealthFindingId/v1":"6458fce45c5466dfdcff6aa3c34f014f1cde549e797008dfddeca9af55ee5d71"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/spv/instructions.rs:793-802 | naga/src/back/spv/instructions.rs:890-899 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/instructions.rs"},"region":{"startLine":793}}}],"partialFingerprints":{"codehealthFindingId/v1":"36590240424787d22c06a948fa07923ce5d9ae2b13a601da72caa50df0508b0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/wgsl/writer.rs:917-926 | naga/src/back/wgsl/writer.rs:946-955 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"902c981742a32556c88c74259a2c7eb753cefdb3ce1a36cd6c68953b3f606387"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/front/glsl/builtins.rs:633-642 | naga/src/front/glsl/builtins.rs:809-818 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":633}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cda03d05d290eb28fd245e25bc38625ff9444e7251975a4c9d82a9cc24ff0d6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/front/glsl/builtins.rs:857-866 | naga/src/front/glsl/builtins.rs:885-894 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":857}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e010a428a58aaf59f3159f16b6533c9859eaf5613c6b5b262f933a458aceb77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/front/glsl/builtins.rs:868-877 | naga/src/front/glsl/builtins.rs:1196-1205 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":868}}}],"partialFingerprints":{"codehealthFindingId/v1":"07254d16ca1a494f4c4b3adc560fd33ae3af476f04b19aaac3bec1518bdfa474"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/front/wgsl/parse/number.rs:253-262 | naga/src/front/wgsl/parse/number.rs:272-281 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"73733882f7bdf2743e5f346689ea4247d63c36cca4a15d0319108ec3b3cfd278"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/proc/constant_evaluator.rs:2915-2924 | naga/src/proc/constant_evaluator.rs:2978-2987 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2915}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4e34c1bab58122dc8082c6c0deab34f49a544eb89ab2292491cbb3f4f50b346"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/valid/expression.rs:1371-1380 | naga/src/valid/expression.rs:1391-1401 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":1371}}}],"partialFingerprints":{"codehealthFindingId/v1":"d88c336eb2c6006f1ffbe8311e231adfcc05802dd98dd722d998e8876b290b40"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/valid/function.rs:853-862 | naga/src/valid/function.rs:968-977 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":853}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ed06d4249a4b54afe725f91e836f0040600fa119ea4ed2fd3a9d29016ea8236"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/valid/interface.rs:457-466 | naga/src/valid/interface.rs:468-477 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"1895e5e44c0f559a7a0277feb5fa9469fa05cbd207c767a65fa3f9f6fcee63a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (4\u201310 lines \u00D7 4): naga/src/front/spv/next_block.rs:2541-2544 | naga/src/front/spv/next_block.rs:2636-2645 | naga/src/front/spv/next_block.rs:2723-2726 | naga/src/front/spv/next_block.rs:2789-2798 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2541}}}],"partialFingerprints":{"codehealthFindingId/v1":"d00766e9f291fdda997a3de39435a193fd958a9cd7f752863620ebab9d1085aa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu/src/backend/webgpu.rs:2635-2644 | wgpu/src/backend/webgpu.rs:4537-4546 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":2635}}}],"partialFingerprints":{"codehealthFindingId/v1":"6079498ca5e9f4b4d0a9fc09cff19559f4df4d3304433f946a148ccf1c11c30f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu/src/backend/webgpu.rs:3859-3868 | wgpu/src/backend/webgpu.rs:4146-4155 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":3859}}}],"partialFingerprints":{"codehealthFindingId/v1":"27fbbf47ccb470ebc52e1b92bbb455b7bee8ae1d96d26b2283f8dbc9e09f6699"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu/src/backend/wgpu_core.rs:1260-1269 | wgpu/src/backend/wgpu_core.rs:1343-1352 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1260}}}],"partialFingerprints":{"codehealthFindingId/v1":"972dc00261be678a91256b0c4645ea5876d3de1576c7c8359396256c9273297e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u201310 lines \u00D7 2): wgpu-core/src/command/bundle.rs:1047-1053 | wgpu-core/src/command/render.rs:2831-2840 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/bundle.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 83 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1047}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c5b1c623155004b79a5849b343d3138dce8a10a44687dc057e5498e900b3476"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu-core/src/pipeline.rs:522-531 | wgpu-core/src/pipeline.rs:1189-1198 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":522}}}],"partialFingerprints":{"codehealthFindingId/v1":"6afadef95402ddfe8c5d7fa8aaa46768c0f4975256f08f0ffd079971e3eec8a8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu-hal/src/dx12/command.rs:1033-1042 | wgpu-hal/src/dx12/command.rs:1705-1714 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1033}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eb1a90fe590f6f44bc342f5e29044275a3a53d1640f1084f0c6e9be6b208589"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu-info/src/human.rs:320-329 | wgpu-info/src/human.rs:349-358 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-info/src/human.rs"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d9b7f3f3b43e02ee7b27bd6d26801449be23dd39ef03f3a6ae0456c0c883f7b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): deno_webgpu/webidl.rs:46-54 | deno_webgpu/webidl.rs:156-164 | deno_webgpu/webidl.rs:251-259 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9a85c57cb2ac7504a663070fda79077800d23e5fec219c1c9f5bd2ca8c3ca80"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): naga/src/back/glsl/writer.rs:2273-2281 | naga/src/back/msl/writer.rs:4421-4429 | naga/src/back/wgsl/writer.rs:1205-1213 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 7 separate duplicated blocks between them, totalling at least 66 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2273}}}],"partialFingerprints":{"codehealthFindingId/v1":"b25623778973585f6f95abd32c1e1753b247c1e11abc51c2d41426fa8b50e0b7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20139 lines \u00D7 3): naga/src/back/hlsl/help.rs:1066-1072 | naga/src/back/hlsl/help.rs:1140-1148 | naga/src/back/hlsl/help.rs:1217-1225 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1066}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a7177e8c482044cf8e23403551276ef01906084f48c3c6c649247ec7dab2d2c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): naga/src/front/glsl/parser.rs:270-278 | naga/src/front/glsl/parser.rs:293-301 | naga/src/front/glsl/parser.rs:377-385 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a79600e3792757027c7873b1d34c4f78b3a3915de084c0ed78c31e89c6b8754"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u20139 lines \u00D7 3): naga/src/front/spv/mod.rs:1128-1135 | naga/src/front/spv/mod.rs:1203-1210 | naga/src/front/spv/mod.rs:1273-1281 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1128}}}],"partialFingerprints":{"codehealthFindingId/v1":"b974e25a3bbaeb280737a2cc9066e6d0fa48e870ef27ba6a784a6c1b891185e3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): wgpu-hal/src/gles/queue.rs:1821-1829 | wgpu-hal/src/gles/queue.rs:1855-1863 | wgpu-hal/src/gles/queue.rs:1890-1898 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":1821}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a5f1f4be068f062f6963db5938d627bbf75879c8c3780e76e800794300c1c2e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2235-2243 | naga/src/back/wgsl/writer.rs:957-965 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2235}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa0b4d93ea7f3e88ba31635dc590dad1f973bc0abc9eb1994a5ec6698a799241"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2594-2602 | naga/src/back/msl/writer.rs:4086-4094 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 4 separate duplicated blocks between them, totalling at least 37 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2594}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c8ddcb5bada6e0a1773bf6c0a5d986ab0b67358dde7f5414d32eb80c21753c7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3671-3679 | naga/src/back/wgsl/writer.rs:1457-1465 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3671}}}],"partialFingerprints":{"codehealthFindingId/v1":"4427222cd3fadadfaf860831ea6e00b40cda478c310def354554e46b0d85aedb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u20139 lines \u00D7 2): naga/src/back/wgsl/writer.rs:864-871 | naga/src/back/wgsl/writer.rs:885-893 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":864}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bc11af63bb005ed522570c14f4115b8744ebf9424e19c72331dce4a4b28f62a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20139 lines \u00D7 2): naga/src/front/spv/mod.rs:1479-1485 | naga/src/front/spv/next_block.rs:2902-2910 \u2014 before extracting anything, compare \u0060naga/src/front/spv/mod.rs\u0060 and \u0060naga/src/front/spv/next_block.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 33 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1479}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8645465df6090932a4e5080300279a97b447fab313362d14bd8e4f249b793e5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:3660-3668 | naga/src/front/wgsl/lower/mod.rs:3927-3935 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3660}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d1bed4375719f1701955ac106b9c5fe0cde91b31ad5484b5dca1c29afa99d9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6\u20139 lines \u00D7 3): naga/src/front/wgsl/lower/mod.rs:3673-3681 | naga/src/front/wgsl/lower/mod.rs:3688-3696 | naga/src/front/wgsl/lower/mod.rs:3702-3707 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3673}}}],"partialFingerprints":{"codehealthFindingId/v1":"9086f18e33fc97d60ecfb011edb162b620431362408da8511f2bbb5dff4015e6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/front/wgsl/parse/mod.rs:917-925 | naga/src/front/wgsl/parse/mod.rs:1738-1746 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a24ac8f037b45aea29bb77e25e462116bcaec0e61be336479e3e84ef4520266"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/valid/analyzer.rs:735-743 | naga/src/valid/analyzer.rs:794-802 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":735}}}],"partialFingerprints":{"codehealthFindingId/v1":"870e2161b39418cb3b8db393cfb903d35ee25c19b0185474ec3e3320f4e737e9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u20139 lines \u00D7 2): naga/src/front/spv/next_block.rs:736-744 | naga/src/front/spv/next_block.rs:774-781 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":736}}}],"partialFingerprints":{"codehealthFindingId/v1":"70411ea53423b50108aa25c8ede446271159cb26c0374794b5ac0d9f8aea97f1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-core/src/command/compute.rs:579-587 | wgpu-core/src/command/render.rs:2219-2227 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/compute.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":579}}}],"partialFingerprints":{"codehealthFindingId/v1":"64d7b30bf3f0b7db5a1a31330b74f6affae8674679f4ef2dd27246bb663d1254"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-core/src/command/transfer.rs:907-915 | wgpu-core/src/command/transfer.rs:958-966 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/transfer.rs"},"region":{"startLine":907}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a068a3ac32cdc09e211a714dd53fb205a0496c2533091f53f5071a3d05edd0e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:220-228 | wgpu-core/src/indirect_validation/draw.rs:630-638 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"f951345cf7362a7aa2eec979634efb48e00c56620e6a45f791861ae639b4b8d7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:230-238 | wgpu-core/src/timestamp_normalization/mod.rs:234-242 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc3e88b99ce64923e82c619f44be97dcb0440234f9849934e0479e3e700152a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-hal/src/gles/command.rs:502-510 | wgpu-hal/src/gles/command.rs:1224-1232 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":502}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b00c5ba805c7e59b4d2667bfc075b2335c11bb7ec75a0f7774b5777a67e6c85"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-hal/src/gles/device.rs:144-152 | wgpu-hal/src/gles/device.rs:170-178 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f76151a630b84e9ae5d98d5833dac726cfea7ca14fa48ee18bc0376e5b72089"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): wgpu-hal/src/metal/command.rs:673-681 | wgpu-hal/src/metal/command.rs:718-726 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":673}}}],"partialFingerprints":{"codehealthFindingId/v1":"6539bc3bf51a4fade3e4ef452bd930742a9e1c1b19a167cad2ade6f8dfe37951"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 5): naga/src/back/wgsl/writer.rs:916-922 | naga/src/back/wgsl/writer.rs:945-951 | naga/src/back/wgsl/writer.rs:1625-1632 | naga/src/back/wgsl/writer.rs:1699-1706 | naga/src/back/wgsl/writer.rs:1747-1753 \u2014 all 5 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"3be0f14f5282fa142dcbfd959887f98323133d66daeca1ab1984891af4e8a8b0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 4): naga/src/front/spv/mod.rs:1070-1076 | naga/src/front/spv/mod.rs:1130-1136 | naga/src/front/spv/mod.rs:1205-1211 | naga/src/front/spv/mod.rs:1275-1282 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1070}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2846b97b04afd58137ab47a34adcd37f1c1a128dd9edb0d1a3835b4bdf6fcfc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 3): naga/src/back/glsl/writer.rs:2400-2407 | naga/src/back/hlsl/writer.rs:3695-3701 | naga/src/back/wgsl/writer.rs:1471-1478 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2400}}}],"partialFingerprints":{"codehealthFindingId/v1":"92033bb417f4713bf89bda7dba6cee24b9e080fca8bb867e4355b765b6a363b4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 3): naga/src/front/spv/mod.rs:1476-1483 | naga/src/front/spv/next_block.rs:2840-2846 | naga/src/front/spv/next_block.rs:2900-2906 \u2014 before extracting anything, compare \u0060naga/src/front/spv/mod.rs\u0060 and \u0060naga/src/front/spv/next_block.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 33 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1476}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c3f9a271eb0dd4fea000a47a854adb93cb2076415d591c2e1c11ac0f4e68787"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 3): wgpu-hal/src/gles/egl.rs:1416-1423 | wgpu-hal/src/gles/web.rs:415-423 | wgpu-hal/src/gles/wgl.rs:809-817 \u2014 before extracting anything, compare \u0060wgpu-hal/src/gles/egl.rs\u0060 and \u0060wgpu-hal/src/gles/wgl.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 73 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1416}}}],"partialFingerprints":{"codehealthFindingId/v1":"424951879643dc405d6d1133bda346b19bb241bb9453e48f6d48a397bac87c57"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 3): wgpu-hal/src/metal/command.rs:329-336 | wgpu-hal/src/metal/command.rs:400-407 | wgpu-hal/src/metal/command.rs:415-422 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":329}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a4e585e4755327179815c8c1816fcaa914cf84d90e3da239dd704766cb7f8c6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/dot/mod.rs:221-228 | naga/src/back/dot/mod.rs:266-273 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3dd65b087e49a84651af6354192bb615f2075c3c3302336dd358dd95a7cd847"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (4\u20138 lines \u00D7 3): naga/src/back/glsl/writer.rs:2154-2157 | naga/src/back/glsl/writer.rs:2170-2177 | naga/src/back/glsl/writer.rs:2227-2234 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2154}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fa08fdda05723ae6f5a44a30bb7ec429cd26e04c16d6c2f6c81883472c5cb1d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/hlsl/help.rs:403-410 | naga/src/back/hlsl/help.rs:530-537 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"f87cd126d82e15beaad348b378c39e6a45024c24a1ea0585211ed23375cbeb20"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/msl/writer.rs:4328-4335 | naga/src/back/msl/writer.rs:4386-4393 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":4328}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e1a6cdd220c504f2f5121c6f62acfa4d92422dae5070e839c6668add3d4aaf9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/spv/block.rs:1724-1731 | naga/src/back/spv/block.rs:1762-1769 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":1724}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e82949518a99f78ce4b5c2fa6d613e286494dbaf0b104ff74c4125e275311ae"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/front/spv/mod.rs:2260-2267 | naga/src/front/spv/mod.rs:2315-2322 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2260}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f23e2cab1f341abb26f1c916793185a2508930629f737cdcb87df17a9209266"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 2): naga/src/front/spv/mod.rs:2766-2772 | naga/src/front/spv/mod.rs:2842-2849 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2766}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ffa5c76c424260a960f11c846aa999c2a7b6a22f8f97b3fc7b046dff97141f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/front/wgsl/error.rs:100-107 | naga/src/span.rs:298-305 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"f54e18e070fb907f4ee57221e518b03219ca4ab6ba4718a60060e2566c7b9282"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/front/wgsl/error.rs:120-127 | naga/src/span.rs:323-330 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"add2a6efe1c3e203c180599696e9eb4b67bd31ce336540af8c9c3634bd57357c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:3326-3332 | naga/src/front/wgsl/lower/mod.rs:3534-3541 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3326}}}],"partialFingerprints":{"codehealthFindingId/v1":"953c708a459793b70f43ebbd04a4d8c0a3baa3d9b0b2df626046c8ec212e751d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:3750-3757 | naga/src/front/wgsl/lower/mod.rs:3764-3771 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3750}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ed820636ce76dd913f216c70f6a31a32a86591d3aa33105aa711076970023d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/proc/constant_evaluator.rs:2930-2937 | naga/src/proc/constant_evaluator.rs:2993-3000 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2930}}}],"partialFingerprints":{"codehealthFindingId/v1":"b61a93c0494b4305daba896079d0ef7fb94e74a510b1c5707e0a481f8cd2fb0f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/proc/constant_evaluator.rs:2957-2964 | naga/src/proc/constant_evaluator.rs:3017-3024 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2957}}}],"partialFingerprints":{"codehealthFindingId/v1":"55875b69c3a68078f053eedf10771370234ba2c63304213f381ddfca3d24adab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu/src/backend/webgpu.rs:1146-1153 | wgpu/src/backend/webgpu.rs:1154-1161 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":1146}}}],"partialFingerprints":{"codehealthFindingId/v1":"086d5cb38a61d309f23f4b6b63fbc11801565f3e7499a79a38bbd9e43e7f3e61"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-core/src/command/mod.rs:755-762 | wgpu-core/src/command/mod.rs:769-776 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":755}}}],"partialFingerprints":{"codehealthFindingId/v1":"c09341bbff38f86def23ae9d4734016425dec90043f9bcd62e3e425ffebcf9e9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-core/src/command/query.rs:361-368 | wgpu-core/src/command/query.rs:419-426 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/query.rs"},"region":{"startLine":361}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dba0c4f0ea12f249b4da748cab8cf361acf113de841148e6809c9f8264e5211"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-core/src/command/ray_tracing.rs:765-772 | wgpu-core/src/command/ray_tracing.rs:852-859 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef03176e8229830961b28aa603877803b67aac9a3c3e13ba9706c87b540df3a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-core/src/command/ray_tracing.rs:935-942 | wgpu-core/src/command/ray_tracing.rs:1064-1071 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":935}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffb00b591d8192c60d6241545b8321863e5bb829e8a209eabf6295517d3d712a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-core/src/device/resource.rs:1300-1307 | wgpu-core/src/device/resource.rs:1667-1674 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1300}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e939a12cd48cd26b019124a2b8438d71abf84dabb478938dbd541b814dd98da"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-hal/src/auxil/dxgi/dxgi_lib.rs:48-55 | wgpu-hal/src/auxil/dxgi/dxgi_lib.rs:96-103 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/dxgi/dxgi_lib.rs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5b4731504b63ca1505fbbda8c4637f0750e1ef6e27deb96efdc008c4ab5b035"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-hal/src/vulkan/device.rs:2241-2248 | wgpu-hal/src/vulkan/device.rs:2324-2331 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":2241}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa5bade24e0a8798c1f9bcae9b76ec94142dbacb6dc8450e027c75146772d8c8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 6): naga/src/back/dot/mod.rs:379-385 | naga/src/back/glsl/writer.rs:2274-2280 | naga/src/back/msl/writer.rs:4422-4428 | naga/src/back/wgsl/writer.rs:1206-1212 | naga/src/valid/analyzer.rs:1174-1180 | naga/src/valid/function.rs:732-738 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 7 separate duplicated blocks between them, totalling at least 66 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":379}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7d3029874745ea64f79492c132d933267f6241476e26e48fe8aa67dbd419e26"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 4): naga/src/front/spv/next_block.rs:1047-1053 | naga/src/front/spv/next_block.rs:1240-1246 | naga/src/front/spv/next_block.rs:1883-1889 | naga/src/front/spv/next_block.rs:2517-2523 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1047}}}],"partialFingerprints":{"codehealthFindingId/v1":"f251291e39cd36f34ea74a2500584212e9416ca8f6ad613f64014bd15b01fdf7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): naga/src/front/wgsl/lower/mod.rs:3377-3383 | naga/src/front/wgsl/lower/mod.rs:3513-3519 | naga/src/front/wgsl/lower/mod.rs:3552-3558 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3377}}}],"partialFingerprints":{"codehealthFindingId/v1":"681390bdb405fae97c8e706f0b19224dc191e6a3a80be3a149bba117331bfcef"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): deno_webgpu/lib.rs:395-401 | deno_webgpu/lib.rs:438-444 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/lib.rs"},"region":{"startLine":395}}}],"partialFingerprints":{"codehealthFindingId/v1":"0520d60632e5e74367836b2ffb226ba347c7083dab6ce9ff349bf9f187178bae"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/glsl/writer.rs:3460-3466 | naga/src/back/glsl/writer.rs:3482-3488 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3460}}}],"partialFingerprints":{"codehealthFindingId/v1":"b25973ce290e6d12cf2378b8a8c2d654b582a16d3cf2d2ae2720bb8b4e81d45f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6\u20137 lines \u00D7 2): naga/src/back/hlsl/help.rs:331-336 | naga/src/back/hlsl/help.rs:426-432 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"79cde8da0135f39598166bccc0cc0b8f4c8e3567b9026e68ca2ce473830b7439"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/help.rs:1245-1251 | naga/src/back/msl/writer.rs:4874-4880 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1245}}}],"partialFingerprints":{"codehealthFindingId/v1":"527982e284fc9fd40fe65f144c84a616746f50806dee5e49688117bc208cb040"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/storage.rs:186-192 | naga/src/back/hlsl/storage.rs:349-355 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0adc19a5852b681b692f12d494c08829dfd3ed05e792b66067b8148e6bcb583"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3503-3509 | naga/src/back/hlsl/writer.rs:3547-3553 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3503}}}],"partialFingerprints":{"codehealthFindingId/v1":"d73bfe8df72d865e09a7bc8f397d889cef64ddbb88e24e48f0f9273ca1c19058"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3821-3838 | naga/src/back/hlsl/writer.rs:3848-3854 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3821}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e682b93c51fc654eb9dddc5a65f589eeb562407a38ba61600e2b4e5d70f785d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/msl/writer.rs:6417-6423 | naga/src/back/msl/writer.rs:6634-6640 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6417}}}],"partialFingerprints":{"codehealthFindingId/v1":"f350f870d452eb932c61b1a6129aa6660133a71a6bbdc850032b01eb8b8c5ef7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/spv/mod.rs:1006-1012 | naga/src/front/spv/mod.rs:1316-1322 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1006}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2164bd67e4397385adbc30d44e93455d77e72aff86b5ea67a37a4a6dc5d7a22"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:1487-1493 | naga/src/front/wgsl/lower/mod.rs:2324-2330 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1487}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3a3ca2c65797a27be59ceed90e7366bdf2231d370e6338083cb21793dd97f87"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:4714-4720 | naga/src/front/wgsl/lower/mod.rs:4759-4765 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":4714}}}],"partialFingerprints":{"codehealthFindingId/v1":"0761617f2f94eac05e9423947dfdf814c7a2d851d226b68e9a678dfca24e736b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/wgsl/parse/lexer.rs:395-401 | naga/src/front/wgsl/parse/lexer.rs:404-410 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/lexer.rs"},"region":{"startLine":395}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c5133b4f43417d8e2a5e32fb89949e823a03aafcb8a1193c34136a5a43e17c7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/wgsl/parse/mod.rs:1654-1660 | naga/src/front/wgsl/parse/mod.rs:1887-1893 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1654}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3e35ce76a669e5f3f3001702c527a17b59d0d5a30522a6d88cd31489873345a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/wgsl/parse/number.rs:457-463 | naga/src/front/wgsl/parse/number.rs:474-480 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ccd078e3cdfb6eea0d99c20284239901bf226fff22600c19afccd3fb63ada8f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/front/spv/next_block.rs:2437-2443 | naga/src/front/spv/next_block.rs:2477-2483 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2437}}}],"partialFingerprints":{"codehealthFindingId/v1":"badd78457d32d9988c0100c9ca6a3d61017b629bb65e1cc593471258f47d1250"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-core/src/device/resource.rs:2525-2531 | wgpu-core/src/device/resource.rs:2551-2557 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2525}}}],"partialFingerprints":{"codehealthFindingId/v1":"36e93352eaf50bf70bbfa7a9414badb7e1a78ded52ac9addc943601e33858e37"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:87-93 | wgpu-core/src/timestamp_normalization/mod.rs:143-150 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d5d77e327a6a673e842668252fcc0390305b3112a70b4a248320bedb3755c9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:287-293 | wgpu-core/src/indirect_validation/draw.rs:160-166 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"bce2ecd2b55d214b5c9a37d219f7fd79b41eeeb15083564bf77000b4dfd611d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-hal/src/gles/device.rs:1685-1691 | wgpu-hal/src/gles/device.rs:1721-1727 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":1685}}}],"partialFingerprints":{"codehealthFindingId/v1":"736ec518552a830003b063ef18972d2152124a29296d21a30d4508a307687a76"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 5): naga/src/front/spv/mod.rs:1475-1480 | naga/src/front/spv/next_block.rs:861-869 | naga/src/front/spv/next_block.rs:2839-2844 | naga/src/front/spv/next_block.rs:2870-2875 | naga/src/front/spv/next_block.rs:2899-2904 \u2014 before extracting anything, compare \u0060naga/src/front/spv/mod.rs\u0060 and \u0060naga/src/front/spv/next_block.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 33 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1475}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f8fcca49bce25062107222a817be76add762c5acd8318bc5212384a161eeae6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 5): naga/src/front/spv/mod.rs:2161-2166 | naga/src/front/spv/mod.rs:2259-2264 | naga/src/front/spv/mod.rs:2314-2319 | naga/src/front/spv/mod.rs:2384-2389 | naga/src/front/spv/mod.rs:2628-2634 \u2014 all 5 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2161}}}],"partialFingerprints":{"codehealthFindingId/v1":"88ca2c736b766b75c4257c5b2bd1403358ec77c00aafe6b347c794cb3eff662c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 4): naga/src/back/msl/writer.rs:2274-2279 | naga/src/back/msl/writer.rs:2520-2525 | naga/src/back/msl/writer.rs:3105-3110 | naga/src/back/msl/writer.rs:4254-4259 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2274}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f5c2461a2a3e8e007f0ce0b5e724ec3bc9815edf404f1ee50829acfc139e7e8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 4): naga/src/front/spv/mod.rs:1128-1133 | naga/src/front/spv/mod.rs:1203-1208 | naga/src/front/spv/mod.rs:1273-1279 | naga/src/front/spv/next_block.rs:865-870 \u2014 before extracting anything, compare \u0060naga/src/front/spv/mod.rs\u0060 and \u0060naga/src/front/spv/next_block.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 33 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1128}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ec796543e37835898a7bf4725b9ec980aad09bc277195b8bb3f2ebccbbc361c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): naga/src/back/hlsl/writer.rs:2734-2739 | naga/src/back/hlsl/writer.rs:2943-2948 | naga/src/back/hlsl/writer.rs:3007-3012 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2734}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e57adbbb20ece48a5020f05963f663ba0b5b17266a18ca055a3a45ca2589e69"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): naga/src/front/spv/mod.rs:1007-1012 | naga/src/front/spv/mod.rs:1037-1042 | naga/src/front/spv/mod.rs:1317-1322 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1007}}}],"partialFingerprints":{"codehealthFindingId/v1":"af9a01c0ae96f45412cc4e29b5d7752f7b3520d8b45a8c4795192e696e4cb903"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/glsl/writer.rs:3537-3542 | naga/src/back/hlsl/writer.rs:3312-3318 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3537}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9b3ce37993fadbeb85bfc1d8405192de3218bd51af366233d02bbafe076f128"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3254-3259 | naga/src/back/hlsl/writer.rs:3285-3292 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3254}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9c6d71459fb8d4b97a60742aec10dc47d59bc75229eec0b7a154ead3600a545"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3872-3877 | naga/src/back/wgsl/writer.rs:1549-1554 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3872}}}],"partialFingerprints":{"codehealthFindingId/v1":"833e9e078ab6869ebdd758a880f66c3a81bff088468f214f24a7478710551847"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/hlsl/writer.rs:4168-4173 | naga/src/back/wgsl/writer.rs:2012-2017 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":4168}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7df4a79485356128a8964aee59ce1b52f1d8426a6fcd320433029f4565d2600"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/msl/writer.rs:1938-1943 | naga/src/back/msl/writer.rs:1953-1958 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1938}}}],"partialFingerprints":{"codehealthFindingId/v1":"f654c7cd6bd4219a75ef6b9fdf9903fd6797e0cb86c3562eb1fabdf3cb00ec2c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/msl/writer.rs:7112-7117 | naga/src/back/msl/writer.rs:8338-8345 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":7112}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e522fb270fbfc726e74aba61a35a874373837d9041503567923d985c207a49c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/spv/writer.rs:891-896 | naga/src/back/spv/writer.rs:1123-1128 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":891}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2a4590fe4008a09a909081794be7a9d5f11ab40e3c4e4221ed839d5774c2b32"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (4\u20136 lines \u00D7 3): naga/src/front/glsl/builtins.rs:925-928 | naga/src/front/glsl/builtins.rs:1079-1084 | naga/src/front/glsl/builtins.rs:1357-1362 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":925}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c9692493140469f355c8d60818b408b737d6ac07c5115571034895251a14342"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/front/spv/mod.rs:1211-1216 | naga/src/front/spv/mod.rs:1218-1223 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1211}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b8396783e0f8d3fe36f024a7b65e0dc5ac5a5f0eedf895c84867b469a4442a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:3395-3400 | naga/src/front/wgsl/lower/mod.rs:3536-3541 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3395}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e88f0e2268ba1394506d9f6eaa62b088b494d6976888e0b4df07fa2da01618a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/front/wgsl/parse/mod.rs:1182-1187 | naga/src/front/wgsl/parse/mod.rs:1196-1201 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1182}}}],"partialFingerprints":{"codehealthFindingId/v1":"9086b8e9fcff93a4a559040abdbe99123deaff15f55b8a3d8617d1ee91e88d82"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/valid/analyzer.rs:715-720 | naga/src/valid/analyzer.rs:741-746 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":715}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e4e027ded684edd030b6e6922244a0f109ae5053ca9e9e2f9484a01d61b320e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/front/spv/next_block.rs:470-475 | naga/src/front/spv/next_block.rs:549-554 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":470}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4724ffad19ec8d9c86d3ff5c8f50bcb05b8c08ee90d54f87a2b91e9b589e6a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu-core/src/binding_model.rs:1744-1749 | wgpu-core/src/resource.rs:2582-2588 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/binding_model.rs"},"region":{"startLine":1744}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d072137f9f1aaebf3f70781a220e83a74360f9959d10e9d7270e8c1972602dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu-core/src/pipeline.rs:589-594 | wgpu-core/src/pipeline.rs:1272-1277 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":589}}}],"partialFingerprints":{"codehealthFindingId/v1":"16482b1b27bdfba9a0b1e4caac3eb069603fde5126cf04e90ccb7fa6b21ec9ea"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu-hal/src/vulkan/device.rs:2724-2730 | wgpu-hal/src/vulkan/device.rs:2793-2798 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":2724}}}],"partialFingerprints":{"codehealthFindingId/v1":"c73839adfa5c19cf1069048128fcb9597e1a15d6a02485007af75db9256609fc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu-hal/src/vulkan/instance.rs:130-135 | wgpu-hal/src/vulkan/instance.rs:143-148 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a1ab4aee983306eb6b6d3366a567f775dd68a33bc079e65cf00528d90614453"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 12): naga/src/front/spv/next_block.rs:463-468 | naga/src/front/spv/next_block.rs:540-545 | naga/src/front/spv/next_block.rs:1049-1053 | naga/src/front/spv/next_block.rs:1074-1078 | naga/src/front/spv/next_block.rs:1106-1110 | naga/src/front/spv/next_block.rs:1176-1180 | naga/src/front/spv/next_block.rs:1242-1246 | naga/src/front/spv/next_block.rs:1271-1275 | naga/src/front/spv/next_block.rs:1485-1490 | naga/src/front/spv/next_block.rs:1884-1889 | naga/src/front/spv/next_block.rs:2365-2373 | naga/src/front/spv/next_block.rs:2716-2721 \u2014 all 12 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdb3a91528796cc9c6201349fc33d9562be3259179859ef36f4df02df2db32c3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 6): naga/src/back/hlsl/writer.rs:2539-2544 | naga/src/back/wgsl/writer.rs:916-920 | naga/src/back/wgsl/writer.rs:945-949 | naga/src/back/wgsl/writer.rs:1625-1630 | naga/src/back/wgsl/writer.rs:1699-1704 | naga/src/back/wgsl/writer.rs:1747-1751 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2539}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2903cd509620bbc04f73b5d63e7688250b3184742fc59a1134389e4bb912f03"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 5): naga/src/back/hlsl/writer.rs:4167-4171 | naga/src/back/wgsl/writer.rs:1237-1241 | naga/src/back/wgsl/writer.rs:1623-1627 | naga/src/back/wgsl/writer.rs:1933-1937 | naga/src/back/wgsl/writer.rs:2011-2015 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":4167}}}],"partialFingerprints":{"codehealthFindingId/v1":"51c501b62c5d1a2686c472c6609dd1e592fa060dc128ceccc7322ce362917050"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 5): naga/src/front/spv/next_block.rs:462-467 | naga/src/front/spv/next_block.rs:1073-1077 | naga/src/front/spv/next_block.rs:1270-1274 | naga/src/front/spv/next_block.rs:1512-1517 | naga/src/front/spv/next_block.rs:2364-2372 \u2014 all 5 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd95c26823eb4c5d8bcaf9577990aeebab85a174ba797534aea7d6f750e1fa6a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): naga/src/back/hlsl/help.rs:1056-1060 | naga/src/back/hlsl/help.rs:1117-1121 | naga/src/back/hlsl/help.rs:1196-1200 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1056}}}],"partialFingerprints":{"codehealthFindingId/v1":"504b2c9e91aeacdbe749ad7049debf9fa94d0883d13e666af3290072beb26cbd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): naga/src/back/hlsl/storage.rs:357-361 | naga/src/back/hlsl/storage.rs:377-381 | naga/src/back/hlsl/storage.rs:428-433 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"acc7deded80bdb78842bcf94c3e1dc079ad81d0317299abef32acde6316cfe44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): naga/src/front/wgsl/parse/mod.rs:1898-1902 | naga/src/front/wgsl/parse/mod.rs:1904-1908 | naga/src/front/wgsl/parse/mod.rs:1910-1914 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1898}}}],"partialFingerprints":{"codehealthFindingId/v1":"53fd0c148f4f75c1b097fb6924c4d233e8b954bef72e218fa81345a85d261e1e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): wgpu-hal/src/gles/queue.rs:70-74 | wgpu-hal/src/gles/queue.rs:91-95 | wgpu-hal/src/gles/web.rs:289-293 \u2014 there are 3 copies across 2 file(s) \u2014 more copies than files, so at least one file holds the block twice. Extract it once into a single shared function every call site can reach and call it from all 3 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a10c3bd403d9cc15d7ca7f873cc164f8151c08bb6d85a601c351b4c1439f2f6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/glsl/writer.rs:760-765 | naga/src/back/glsl/writer.rs:828-832 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":760}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4abe42e8dcf3e7df45efeb162bf253a8dcbfe926a3f054374599213d6a1d965"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/glsl/writer.rs:1771-1775 | naga/src/back/hlsl/writer.rs:2165-2169 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1771}}}],"partialFingerprints":{"codehealthFindingId/v1":"a022c5e9922fd4c3b2b07779c0b37b2c1a3094d2eaf0fac7bc8413d4082f726c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/glsl/writer.rs:1851-1855 | naga/src/back/hlsl/writer.rs:2619-2623 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1851}}}],"partialFingerprints":{"codehealthFindingId/v1":"52e7f9c0710aad3cabcf2c7beee977cfefd24b87cf169728e5d47c1606b05abf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2345-2349 | naga/src/back/hlsl/writer.rs:4810-4814 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2345}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4161dd997c0d51d2d25f4e7bb24a7372ced924c5f944b4674a2482013aa5700"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/msl/writer.rs:2861-2865 | naga/src/back/msl/writer.rs:2880-2884 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2861}}}],"partialFingerprints":{"codehealthFindingId/v1":"c757166606d47a748bcd39e70c0db04c3b88f4ae0b91f20a37af48e1202d15fa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/front/wgsl/error.rs:94-98 | naga/src/span.rs:292-296 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a14876f33f32dbdbd1cd33a032daaab53d689cfa28ef4ca39eaf92849b41e59"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:3654-3658 | naga/src/front/wgsl/lower/mod.rs:3920-3924 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3654}}}],"partialFingerprints":{"codehealthFindingId/v1":"a75cccdb0956d2c2dc8d8545325767fffedf599a0edad2dd2500ef626ea82188"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/front/wgsl/lower/mod.rs:4472-4476 | naga/src/front/wgsl/lower/mod.rs:5059-5063 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":4472}}}],"partialFingerprints":{"codehealthFindingId/v1":"242cf18d4b5f5fd00b81ec6179eb7373d0d71ac3877aa32db54c27af6101a434"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/front/wgsl/parse/mod.rs:936-940 | naga/src/front/wgsl/parse/mod.rs:943-947 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":936}}}],"partialFingerprints":{"codehealthFindingId/v1":"19af754474d666279af5ce8e5f9824afc6d97dce8104eab564453b76c6528b99"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/front/wgsl/parse/number.rs:438-443 | naga/src/front/wgsl/parse/number.rs:497-501 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":438}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e3fba6a4322a4de9f83066129787f6f8864a485979db8e17e5a829bd1b886be"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/proc/constant_evaluator.rs:3279-3283 | naga/src/proc/constant_evaluator.rs:3350-3354 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":3279}}}],"partialFingerprints":{"codehealthFindingId/v1":"98c9e4afebc13d3402552e47a68f41781f91266e688abe51de3d0fd5d38b3ff1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/front/spv/next_block.rs:1519-1523 | naga/src/front/spv/next_block.rs:1526-1530 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1519}}}],"partialFingerprints":{"codehealthFindingId/v1":"92c49419d0facc764405d8eae9ca15ccc16fe7d9336d187272ea73752aaf37e5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): wgpu-core/src/pipeline.rs:516-520 | wgpu-core/src/pipeline.rs:1183-1187 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":516}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba45d2305078dba731947c3a0adf4e13573d71b7e54fa7e91c005f1044631654"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (42 lines \u00D7 2): wgpu-core/src/track/blas.rs:17-58 | wgpu-core/src/track/query_set.rs:17-62 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/blas.rs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a050cd77afb07c1b1fce632c4f8054a22e9c1d010240a55f21a6572bcd005de"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu/src/api/pipeline_cache.rs:78-95 | wgpu/src/api/render_bundle.rs:19-26 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/pipeline_cache.rs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdfd1dedcb09255c9a4ee1070da8a58f8a2b754e9c1d9094c6435e3d6469ec3c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): naga/src/back/glsl/mod.rs:102-111 | naga/src/back/hlsl/mod.rs:234-243 | naga/src/back/msl/mod.rs:135-144 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere all 3 call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made 3 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/mod.rs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"277b58030dcf997d91d18de6cc5671158ff38e6b5c6902f365ee6913c5c93b01"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3613-3617 | naga/src/back/wgsl/writer.rs:1402-1406 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3613}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b41c44ef15b9d35d9552f57015f68f6d83b436bba123798e7fa6f78c3bb5081"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu/src/api/render_bundle_encoder.rs:95-102 | wgpu/src/api/render_pass.rs:107-114 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/render_bundle_encoder.rs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"73a3589ab36a16b4e02d19018ec8c66cc342c856c656d0bdf7aac7ff3ecbddd0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): wgpu-core/src/pipeline.rs:312-321 | wgpu/src/backend/webgpu.rs:1994-2003 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8b790f29df3c8e45cec27092983b8186327234a9ca296e2de2d3a2f709c4f7d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): wgpu-core/src/pipeline.rs:340-347 | wgpu/src/backend/webgpu.rs:2025-2032 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":340}}}],"partialFingerprints":{"codehealthFindingId/v1":"87fee45352aa30b03891e6ed0f38c2a0704e3b479338ed90770e2bae41ca31b4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): wgpu-core/src/binding_model.rs:1286-1291 | wgpu-core/src/binding_model.rs:1775-1780 | wgpu-core/src/pipeline.rs:114-119 \u2014 there are 3 copies across 2 file(s) \u2014 more copies than files, so at least one file holds the block twice. Extract it once into a single shared function every call site can reach and call it from all 3 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/binding_model.rs"},"region":{"startLine":1286}}}],"partialFingerprints":{"codehealthFindingId/v1":"421ee3111757db1cde0b07a174f5d0109a6b1c5d3f6e10ef9e1530a7cbe37f82"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): wgpu-core/src/binding_model.rs:1293-1298 | wgpu-core/src/pipeline.rs:558-563 | wgpu-core/src/pipeline.rs:1225-1230 \u2014 there are 3 copies across 2 file(s) \u2014 more copies than files, so at least one file holds the block twice. Extract it once into a single shared function every call site can reach and call it from all 3 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/binding_model.rs"},"region":{"startLine":1293}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e15d703d6548b730047cafe9641a15aebae12fa303165436d5c6c0eb4202e67"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 8): wgpu-core/src/command/bundle.rs:1398-1403 | wgpu-core/src/command/clear.rs:81-86 | wgpu-core/src/command/compute.rs:210-215 | wgpu-core/src/command/mod.rs:1665-1670 | wgpu-core/src/command/render.rs:1005-1010 | wgpu-core/src/device/queue.rs:570-575 | wgpu-core/src/device/queue.rs:608-613 | wgpu-core/src/resource.rs:2781-2786 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/bundle.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 83 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1398}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c9242fb3dd03011c7d47ae0a4bd175dd2973b65b3c2d57180486411f6145ede"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-core/src/command/compute.rs:308-314 | wgpu-core/src/command/render.rs:722-728 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/compute.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":308}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd06f2d03a97bfbc189d96afab7a2a02603ef66999d0830e4a390b9376564db9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-core/src/pipeline.rs:660-666 | wgpu-core/src/resource.rs:3019-3025 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline.rs"},"region":{"startLine":660}}}],"partialFingerprints":{"codehealthFindingId/v1":"397d536ca7a18946e733e5aa87e5b3113beb8465cf4eba8eeaa088d6544fd62c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu-hal/src/dx12/mod.rs:1034-1039 | wgpu-hal/src/lib.rs:2320-2325 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":1034}}}],"partialFingerprints":{"codehealthFindingId/v1":"21cc7414d2d1bad35d718a7a73151dcb733cc595a7b0f38da157aabb8711a34e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu-hal/src/gles/device.rs:1360-1365 | wgpu-hal/src/metal/device.rs:891-897 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":1360}}}],"partialFingerprints":{"codehealthFindingId/v1":"75c8402409719e2481ea8797f6bd67419255faf349d2e6b79fe3b5586b2a7140"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): deno_webgpu/compute_pass.rs:202-207 | deno_webgpu/render_pass.rs:367-372 \u2014 before extracting anything, compare \u0060deno_webgpu/compute_pass.rs\u0060 and \u0060deno_webgpu/render_pass.rs\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 70 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pass.rs"},"region":{"startLine":202}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b3e48ed3a3c7cd64c0ae8f85d271fc66eceb993e74e1281a58506e4a809c0fc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/arena/mod.rs:212-218 | naga/src/arena/unique_arena.rs:179-185 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/arena/mod.rs"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"18c190e7a88034c3942649c0a0168609918fce3054164f9deee479283d22b5f8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): wgpu/src/api/command_buffer.rs:41-46 | wgpu/src/api/command_encoder.rs:453-458 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/command_buffer.rs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1821d149b8b1b8a1009ea4e6a8f6c7a926bc355aa5b714fa356cf4be7bab10a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): wgpu/src/api/render_bundle_encoder.rs:74-78 | wgpu/src/api/render_pass.rs:76-81 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/render_bundle_encoder.rs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ccb849deefb6a1d28cc21b2f00a2ae81cca3cb6706a5e648763463e9f4ebd79"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-core/src/command/compute.rs:1359-1365 | wgpu-core/src/command/render.rs:4401-4407 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/compute.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":1359}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d477c1507a2680b85a94d3e8decb8e31f5cc189980d6d83164be760218489c8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 4): wgpu-core/src/command/compute.rs:1399-1411 | wgpu-core/src/command/compute.rs:1424-1437 | wgpu-core/src/command/render.rs:4441-4452 | wgpu-core/src/command/render.rs:4498-4510 \u2014 before extracting anything, compare \u0060wgpu-core/src/command/compute.rs\u0060 and \u0060wgpu-core/src/command/render.rs\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":1399}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c3ade946ca6dcad2488d7c6b258bd943d835d4917e268ae769654c4a772000a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 8): naga/src/back/msl/writer.rs:5184-5196 | naga/src/back/msl/writer.rs:5231-5243 | naga/src/back/msl/writer.rs:5402-5414 | naga/src/back/msl/writer.rs:5458-5468 | naga/src/back/msl/writer.rs:5513-5525 | naga/src/back/msl/writer.rs:5611-5623 | naga/src/back/msl/writer.rs:5827-5847 | naga/src/back/msl/writer.rs:5855-5870 \u2014 all 8 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5184}}}],"partialFingerprints":{"codehealthFindingId/v1":"8240b8326f83fdb642f4584769db33dbb14b2d527b0b16d7494985c351716881"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): naga/src/back/msl/writer.rs:6430-6445 | naga/src/back/msl/writer.rs:6525-6542 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6430}}}],"partialFingerprints":{"codehealthFindingId/v1":"65a866c4068ce49071945fd715ab85cf9d9f22281d2ea86ddd82ffd0a441a83a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): naga/src/back/hlsl/writer.rs:3821-3838 | naga/src/back/hlsl/writer.rs:3848-3854 | naga/src/back/hlsl/writer.rs:3864-3868 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3821}}}],"partialFingerprints":{"codehealthFindingId/v1":"711e782caf87d24cb90575218305e6cf43c4edb70265ed478d207b64a232016a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): naga/src/valid/type.rs:324-337 | naga/src/valid/type.rs:348-361 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":324}}}],"partialFingerprints":{"codehealthFindingId/v1":"9510a2ba903c290ac8cc0734673e24e46de0b885e13741e4bca06b6c1e66103c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): naga/src/back/msl/writer.rs:5137-5149 | naga/src/back/msl/writer.rs:5345-5357 | naga/src/back/msl/writer.rs:5807-5819 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5137}}}],"partialFingerprints":{"codehealthFindingId/v1":"b85e6517a1f569a761ebcd4bc16b88027f2c33be082d724e581a12dd31353fb1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): naga-cli/src/bin/naga.rs:949-961 | naga-cli/src/bin/naga.rs:984-996 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga-cli/src/bin/naga.rs"},"region":{"startLine":949}}}],"partialFingerprints":{"codehealthFindingId/v1":"5571d66f74f1915ae8f644eaf6fca73860e186aa39ec54ffed345ef3e7b82e77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): naga/src/back/msl/writer.rs:5097-5106 | naga/src/back/msl/writer.rs:5288-5300 | naga/src/back/msl/writer.rs:5709-5721 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5097}}}],"partialFingerprints":{"codehealthFindingId/v1":"659237fbfff839127b60148b6a42fa5e79bd0b48f60290915413bc93ef715f48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/hlsl/writer.rs:4621-4630 | naga/src/back/wgsl/writer.rs:1922-1933 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":4621}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d26c8097eb6688e06c67d9c07e32753ec2a2f775e0aeec39234616a92a5363"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/hlsl/help.rs:2187-2196 | naga/src/back/hlsl/help.rs:2200-2211 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":2187}}}],"partialFingerprints":{"codehealthFindingId/v1":"89c0311ba7aab71514aabbad7b429bd47ce07869a8a670b32f9bf5f1ed9ef3d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:110-121 | wgpu-core/src/indirect_validation/draw.rs:577-587 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"0dadc4500c611f0cb1f786ab416d463b910f11dd82a628aff579f3114799a0b2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): naga/src/front/wgsl/lower/mod.rs:3608-3619 | naga/src/front/wgsl/lower/mod.rs:3621-3632 | naga/src/front/wgsl/lower/mod.rs:3634-3645 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3608}}}],"partialFingerprints":{"codehealthFindingId/v1":"56b32bffdbdf206211f86faee0b17a51bfa96be0808f38a66425807b6ebc78df"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga-cli/src/bin/naga.rs:869-879 | naga-cli/src/bin/naga.rs:895-905 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga-cli/src/bin/naga.rs"},"region":{"startLine":869}}}],"partialFingerprints":{"codehealthFindingId/v1":"b05c70c239d9db3a61770c75270ac4f0ed11be8bb1505b7e8572cf35abdc36ba"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:186-196 | wgpu-core/src/indirect_validation/draw.rs:119-129 \u2014 before extracting anything, compare \u0060wgpu-core/src/indirect_validation/dispatch.rs\u0060 and \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 92 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c9440c088a8d1a3a3146577be9de89d9297402eb682dcb499690528e0d53a66"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): naga/src/back/msl/writer.rs:5119-5129 | naga/src/back/msl/writer.rs:5323-5333 | naga/src/back/msl/writer.rs:5750-5760 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5119}}}],"partialFingerprints":{"codehealthFindingId/v1":"64ebec5fb8e0f9bdf26ac5919321f8ffe915828fa1657a8569f1caa96adbe1b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-hal/src/auxil/dxgi/dxgi_lib.rs:33-43 | wgpu-hal/src/dx12/mod.rs:238-248 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/dxgi/dxgi_lib.rs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff86510aab6a7dba73ae006b5c19dcb04800bfe43664fd5949a2ba8ed90736a0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): naga/src/back/msl/writer.rs:5084-5089 | naga/src/back/msl/writer.rs:5266-5276 | naga/src/back/msl/writer.rs:5652-5662 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5084}}}],"partialFingerprints":{"codehealthFindingId/v1":"c15e5448cf1579ad1c9ca60564a0f53396e8bb4f070893c58f98ff61daba45eb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): wgpu-core/src/indirect_validation/dispatch.rs:135-145 | wgpu-core/src/indirect_validation/dispatch.rs:161-171 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/dispatch.rs"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6e25ed186495abc89428f049d1825888478035e0aef9885b2c554107bb8432d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 6): naga/src/back/msl/writer.rs:5166-5176 | naga/src/back/msl/writer.rs:5213-5223 | naga/src/back/msl/writer.rs:5380-5390 | naga/src/back/msl/writer.rs:5437-5446 | naga/src/back/msl/writer.rs:5491-5501 | naga/src/back/msl/writer.rs:5554-5564 \u2014 all 6 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":5166}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8a8bd80623a4c18200f92ced8961c3fe45a53341f349730baca16ef97643351"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): naga/src/back/msl/writer.rs:6043-6053 | naga/src/back/msl/writer.rs:6131-6141 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":6043}}}],"partialFingerprints":{"codehealthFindingId/v1":"05b634346b558b028d478b50469e65efd4b934f5fdb8bb0673142f0ab8b4d19c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): naga/src/back/glsl/writer.rs:4009-4018 | naga/src/back/glsl/writer.rs:4059-4068 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":4009}}}],"partialFingerprints":{"codehealthFindingId/v1":"9af2a9fcc13086cdee66bf5928ad5dc16d48c5617e25b122ce3528b3ea67c504"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/back/hlsl/help.rs:1521-1530 | naga/src/back/hlsl/help.rs:1572-1580 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1521}}}],"partialFingerprints":{"codehealthFindingId/v1":"f339d176515fd514e07de5ef707c32d3ec6dcb4356cd92f7db4057fe37f85c47"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/proc/namer.rs:378-386 | naga/src/proc/namer.rs:393-401 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/namer.rs"},"region":{"startLine":378}}}],"partialFingerprints":{"codehealthFindingId/v1":"022a00eb54991053492342806652ce7fcabe754f606f7d10726d2da62bcabd12"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): naga/src/front/wgsl/parse/mod.rs:1941-1949 | naga/src/front/wgsl/parse/mod.rs:1982-1990 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1941}}}],"partialFingerprints":{"codehealthFindingId/v1":"95e329e7fa8ccbd194d28442dadbec9df6197666f23c20878a4252aa80e6c473"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/glsl/writer.rs:1811-1819 | naga/src/back/msl/writer.rs:4070-4076 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/msl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 7 separate duplicated blocks between them, totalling at least 66 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":1811}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b0108378e054e592a27fa30aab5c46b2f1569fd8346f2fd6a9b17f1f63d308d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/hlsl/help.rs:403-410 | naga/src/back/msl/writer.rs:6600-6608 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5af08cdb26d33173addb06665ac6c109ad26ad073d17a75dcde268ec2d48ad6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/msl/writer.rs:1347-1354 | naga/src/back/msl/writer.rs:3106-3113 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1347}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1e9b87e4a7067cce9f3e8165d698d293ae2f733af803c675fb5a1e8ac6df631"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3513-3520 | naga/src/back/hlsl/writer.rs:3530-3534 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3513}}}],"partialFingerprints":{"codehealthFindingId/v1":"be7c7aca316dc4af8ca336b791b004843beb756104559ac77a5e2e686ae3f242"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/proc/namer.rs:326-333 | naga/src/proc/namer.rs:357-364 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/namer.rs"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"dddc3142b755857e3afc8087d6e19ce1c160f62185bb2969340d6091914eb5ae"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/hlsl/help.rs:337-341 | naga/src/back/hlsl/help.rs:432-439 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":337}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cc15b0321b6a425aaecd3a95db14039adeeaab77308e50baf09060a1f1426e4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): wgpu-hal/src/auxil/dxgi/dxgi_lib.rs:50-55 | wgpu-hal/src/auxil/dxgi/dxgi_lib.rs:74-81 | wgpu-hal/src/auxil/dxgi/dxgi_lib.rs:98-103 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/dxgi/dxgi_lib.rs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbc78bf1400c853e61b6bbc913c3ba6254f324ebebeeb1fd3cbc478af8d6b549"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): naga/src/back/hlsl/storage.rs:198-205 | naga/src/back/hlsl/storage.rs:218-225 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"acca304efe0b0c3fcfe2cb087d96a5d74e5d75fb7ae8cd72c68c1798944a6701"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): naga/src/front/wgsl/lower/mod.rs:3722-3728 | naga/src/front/wgsl/lower/mod.rs:3733-3739 | naga/src/front/wgsl/lower/mod.rs:3744-3750 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3722}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ed4ace8d30e0da2925106d410412b16b31f06e3d01f8aaf2162af29f037499f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/front/wgsl/parse/mod.rs:186-191 | naga/src/front/wgsl/parse/mod.rs:195-201 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b59aa740e4390b592af7c9cf9fdfc8aea39368512529a2bfe1f048483b715f6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): wgpu-info/src/human.rs:31-37 | wgpu-info/src/human.rs:44-50 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-info/src/human.rs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"887ad6cb8fa9d0f58c957c59afbb7b6f1f0633a574405ca899a590d31e0c02d9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/writer.rs:3481-3487 | naga/src/back/hlsl/writer.rs:3495-3501 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3481}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b17bc7b52c8afdd98569cecccfe0d43fc900da8a0a987b44aace8b2c613506d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2350-2356 | naga/src/back/hlsl/writer.rs:4815-4821 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2350}}}],"partialFingerprints":{"codehealthFindingId/v1":"67410c6b4aee1934d82752abc58486ec40aa0538fb74db95b6a1c482f5a9bdb6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): naga/src/back/hlsl/writer.rs:4880-4886 | naga/src/back/hlsl/writer.rs:4900-4906 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":4880}}}],"partialFingerprints":{"codehealthFindingId/v1":"733f27f197e130ba8f15de7a3018c25c4c4eb199a2c14d1ba0bd936e0d630a8a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/glsl/writer.rs:3362-3367 | naga/src/back/glsl/writer.rs:3393-3398 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3362}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ac138d90edbfc396a233eefecf42a40475cab78737ea5379ce5e77307e312a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): deno_webgpu/byow.rs:245-250 | deno_webgpu/byow.rs:253-258 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/byow.rs"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9acdbfbf932c8ef856435917323ef68efbc8f90dfc2ab7b690920b5ea085133"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/msl/writer.rs:2409-2414 | naga/src/back/msl/writer.rs:2418-2423 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2409}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d2678caa44d61edb01a27e8c9b11808a82804e575be14f65fbe487203d71868"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/msl/writer.rs:4171-4176 | naga/src/back/wgsl/writer.rs:870-874 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":4171}}}],"partialFingerprints":{"codehealthFindingId/v1":"01b342db726fd16191ab98440a2746cfce4a4b21b4ebfd4cff9f71145d5cd279"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): naga/src/back/wgsl/writer.rs:928-933 | naga/src/back/wgsl/writer.rs:1093-1098 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":928}}}],"partialFingerprints":{"codehealthFindingId/v1":"36b4543343edd24465177453b727e7fbadcbab7c538561b69cad117a5c009bd8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/hlsl/help.rs:1421-1425 | naga/src/back/hlsl/help.rs:1473-1477 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1421}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0294fbd5b7727046e1b714c9d08f63d15476ed6efdc09b18a832cf0c881e447"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 4): naga/src/back/glsl/writer.rs:2181-2185 | naga/src/back/hlsl/writer.rs:2952-2956 | naga/src/back/msl/writer.rs:4336-4340 | naga/src/back/wgsl/writer.rs:1115-1119 \u2014 \u0060naga/src/back/glsl/writer.rs\u0060 and \u0060naga/src/back/hlsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 9 separate duplicated blocks between them, totalling at least 86 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2181}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c09f470bddcbd6e6321d613c2544431f0851c429dafa5a03890072bbf2629d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/msl/writer.rs:1458-1462 | naga/src/back/msl/writer.rs:1468-1472 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1458}}}],"partialFingerprints":{"codehealthFindingId/v1":"6afbe74da778798757ed7289f20d0c7540f02b0c81fb8a1dfe484c7f34b68388"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 4): naga/src/back/hlsl/help.rs:968-972 | naga/src/back/hlsl/help.rs:1032-1036 | naga/src/back/hlsl/help.rs:1092-1096 | naga/src/back/hlsl/help.rs:1170-1174 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":968}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2cd75e702be9509d38d685b5a607da17e8722981ab81ed47a92a61bc796b434"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/hlsl/writer.rs:2662-2666 | naga/src/back/wgsl/writer.rs:845-849 \u2014 \u0060naga/src/back/hlsl/writer.rs\u0060 and \u0060naga/src/back/wgsl/writer.rs\u0060 are one unit implemented once per sibling directory, so they are most likely parallel implementations of one contract rather than a copy of each other \u2014 this scan matched 18 separate duplicated blocks between them, totalling at least 185 lines. If both are selected at run time, neither can be retired in favour of the other, and the lines that DIFFER between them are the reason both exist. The move that pays here is to hoist the identical part into a shared location the whole family can reach and give what differs a parameter or a seam, so a change lands once instead of once per sibling; extracting one helper per block leaves every sibling to drift on its own."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2662}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a321a8b10bcfb959155906241b8fb38e129e43867e28ec960ce752305e3d698"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): naga/src/back/msl/writer.rs:2411-2415 | naga/src/back/msl/writer.rs:2420-2424 | naga/src/back/msl/writer.rs:2430-2434 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2411}}}],"partialFingerprints":{"codehealthFindingId/v1":"5841c73263347353c7cca1b8f1168ef1683e64af0b6908daf8fcfd66ec00fecf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): naga/src/back/glsl/writer.rs:3133-3137 | naga/src/back/glsl/writer.rs:3476-3480 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3133}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3e9f6a15d475a1d2c77893af97defeb2dcab790b6b7699a22a837966470d21a"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/device/resource.rs: wgpu-core/src/device/resource.rs changed 82 times in last 90 days, max cyclomatic complexity 122 in Device::create_render_pipeline_or_error_inner at line 4655. 17 of those changes were fix/bug commits, and the other 65 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/device/resource.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":4655}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f16595a759279f6788c8cfec2a7f5f2891e5c213e95cf0b8a2a7b4fdf145003"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu/src/backend/webgpu.rs: wgpu/src/backend/webgpu.rs changed 29 times in last 90 days, max cyclomatic complexity 97 in wgpu::backend::webgpu::map_texture_format at line 223. 4 of those changes were fix/bug commits, and the other 25 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu/src/backend/webgpu.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"340bbebdccbfb393b12bcfb76a93fc054f85d13f0c63492ac65e46c376cbd947"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/metal/adapter.rs: wgpu-hal/src/metal/adapter.rs changed 18 times in last 90 days, max cyclomatic complexity 133 in CapabilitiesQuery::new at line 675. 4 of those changes were fix/bug commits, and the other 14 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/metal/adapter.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":675}}}],"partialFingerprints":{"codehealthFindingId/v1":"33d81eb85a9be3e414f4ea9de54c29a7202b80487c875653355832c53e924794"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: player/src/lib.rs: player/src/lib.rs changed 44 times in last 90 days, max cyclomatic complexity 54 in Player::process at line 100. 1 of those changes was a fix/bug commit, and the other 43 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- player/src/lib.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/lib.rs"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"a13654f8c32b021ce059ef2c197d800242bce086b8d72f692cdf22e890ba5ad0"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/command/render.rs: wgpu-core/src/command/render.rs changed 32 times in last 90 days, max cyclomatic complexity 59 in RenderPassInfo::start at line 1218. 8 of those changes were fix/bug commits, and the other 24 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/command/render.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":1218}}}],"partialFingerprints":{"codehealthFindingId/v1":"b889f6e51f478b59ddb765d81ea2f51091383e94453e6f8bd0ecc0b0c12574b2"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/resource.rs: wgpu-core/src/resource.rs changed 36 times in last 90 days, max cyclomatic complexity 48 in Texture::create_view_inner at line 1856. 5 of those changes were fix/bug commits, and the other 31 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/resource.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":1856}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6835509e06810fefe33382d54b00be33d83dec6e0f10843d03230f4f47c076d"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu/src/backend/wgpu_core.rs: wgpu/src/backend/wgpu_core.rs changed 82 times in last 90 days, max cyclomatic complexity 19 in CoreDevice::create_bind_group at line 1023. 3 of those changes were fix/bug commits, and the other 79 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu/src/backend/wgpu_core.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/wgpu_core.rs"},"region":{"startLine":1023}}}],"partialFingerprints":{"codehealthFindingId/v1":"a177b1a0209ebe35b784124098374efe2d2257be8f19673668174e49766c35a7"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/msl/writer.rs: naga/src/back/msl/writer.rs changed 7 times in last 90 days, max cyclomatic complexity 205 in Writer::put_expression at line 2134. 2 of those changes were fix/bug commits, and the other 5 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/msl/writer.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2134}}}],"partialFingerprints":{"codehealthFindingId/v1":"999c61a0d72d82d9a4c8906e561008b9ad6060e80a6b8848b1dee31b44837f7c"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/vulkan/adapter.rs: wgpu-hal/src/vulkan/adapter.rs changed 18 times in last 90 days, max cyclomatic complexity 59 in InstanceShared::inspect at line 1922. 6 of those changes were fix/bug commits, and the other 12 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/vulkan/adapter.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1922}}}],"partialFingerprints":{"codehealthFindingId/v1":"5deec2a957dfa4cb11421e39d95a0513b0b9313f2c6c265ad9780724ed6cfeaa"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/validation.rs: wgpu-core/src/validation.rs changed 12 times in last 90 days, max cyclomatic complexity 85 in Interface::check_stage at line 1563. 6 of those changes were fix/bug commits, and the other 6 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, make sure the area it touches is under test, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/validation.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/validation.rs"},"region":{"startLine":1563}}}],"partialFingerprints":{"codehealthFindingId/v1":"76302d6ecf0e08e106dce33737745c49b889e6d95c71d3ff05c12b32de2bd439"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/valid/interface.rs: naga/src/valid/interface.rs changed 7 times in last 90 days, max cyclomatic complexity 133 in VaryingContext::validate_impl at line 234. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/valid/interface.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"060140cedfb3b463c8921197fa5d15eaad0e69d3981d178f5e70d2dfdbe6b90c"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/glsl/writer.rs: naga/src/back/glsl/writer.rs changed 3 times in last 90 days, max cyclomatic complexity 300 in Writer::write_expr at line 2430. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/glsl/writer.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2430}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae133659980e3936acc4d4dcc679a45353321cb5cf5a617de624f0fb7a46ffd6"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/gles/queue.rs: wgpu-hal/src/gles/queue.rs changed 5 times in last 90 days, max cyclomatic complexity 177 in Queue::process at line 192. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/gles/queue.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc97befb8f46517a1ee3e0cc736be0dd27589043e1a24db6689d4c3e2e06ac6b"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/vulkan/conv.rs: wgpu-hal/src/vulkan/conv.rs changed 7 times in last 90 days, max cyclomatic complexity 122 in PrivateCapabilities::map_texture_format at line 6. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/vulkan/conv.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/conv.rs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"56d9d0eb552c1d16f6ce6a44e5752b92979fcdaba064ee8f8fe7aca9d87fca0f"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/dx12/adapter.rs: wgpu-hal/src/dx12/adapter.rs changed 8 times in last 90 days, max cyclomatic complexity 103 in Adapter::expose at line 65. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/dx12/adapter.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"a22875c15b64e6960b90465c079948d053e845c5dfd0087a2ec7b302e4474182"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/device/trace/record.rs: wgpu-core/src/device/trace/record.rs changed 13 times in last 90 days, max cyclomatic complexity 59 in wgpu_core::device::trace::record::action_to_owned at line 875. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/device/trace/record.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/trace/record.rs"},"region":{"startLine":875}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0b59e40e13cb62a1fdda6222de4713c7cce4b23e887f90e48668adda30a949a"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/spv/block.rs: naga/src/back/spv/block.rs changed 3 times in last 90 days, max cyclomatic complexity 249 in BlockContext::cache_expression_value at line 790. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/spv/block.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b31ecbd51ca65df409911655ab0d72596245f6491c5f5e718552b3a44ebc0e5"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/command/bundle.rs: wgpu-core/src/command/bundle.rs changed 26 times in last 90 days, max cyclomatic complexity 26 in RenderBundle::execute at line 1503. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/command/bundle.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/bundle.rs"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b67bffc4eafa956350131bf14f6d63612291826d3493a849dd8b3b61863d1c6"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/gles/adapter.rs: wgpu-hal/src/gles/adapter.rs changed 7 times in last 90 days, max cyclomatic complexity 96 in Adapter::expose at line 195. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/gles/adapter.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c7d84889b856dc398c4f6f8357482add3829281ce6707b0e5efcfc6ae7c354f"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: deno_webgpu/texture.rs: deno_webgpu/texture.rs changed 7 times in last 90 days, max cyclomatic complexity 95 in TextureFormat::from at line 496. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- deno_webgpu/texture.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":496}}}],"partialFingerprints":{"codehealthFindingId/v1":"aff5f56626877db1d0faae8e0f71653d0c78f35573f434550436b9241a960e58"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/front/wgsl/error.rs: naga/src/front/wgsl/error.rs changed 5 times in last 90 days, max cyclomatic complexity 123 in Error::as_parse_error at line 678. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/front/wgsl/error.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/error.rs"},"region":{"startLine":678}}}],"partialFingerprints":{"codehealthFindingId/v1":"5badb6777cd98a68ee2bf3a25c45efbedaf8ae3e5ad54bad9fcdffb7fe6fff05"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/command/ray_tracing.rs: wgpu-core/src/command/ray_tracing.rs changed 12 times in last 90 days, max cyclomatic complexity 49 in wgpu_core::command::ray_tracing::iter_blas at line 588. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/command/ray_tracing.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/ray_tracing.rs"},"region":{"startLine":588}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5f2ffc2af4566ff2b92803c80abed57dda8701884abc35414d52d98302f6a70"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-types/src/features.rs: wgpu-types/src/features.rs changed 7 times in last 90 days, max cyclomatic complexity 82 in Features::from_name at line 102. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-types/src/features.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/features.rs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa0008277655013e03a928a1ca9606dd161bc87e4269b10f131bf0387951e2d1"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/device/queue.rs: wgpu-core/src/device/queue.rs changed 23 times in last 90 days, max cyclomatic complexity 24 in Queue::submit_inner at line 1511. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/device/queue.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":1511}}}],"partialFingerprints":{"codehealthFindingId/v1":"afbcf24913e445805b5dd1545f690827197d994ee3de314d1311e93df2343028"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/hlsl/writer.rs: naga/src/back/hlsl/writer.rs changed 4 times in last 90 days, max cyclomatic complexity 132 in Writer::write_math_expression at line 3078. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/hlsl/writer.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3078}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf18a6716e73ce848be9a4be5e77ab16119d9173208a2f3a337e33d6362b9668"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/metal/device.rs: wgpu-hal/src/metal/device.rs changed 11 times in last 90 days, max cyclomatic complexity 46 in Device::create_render_pipeline at line 1425. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/metal/device.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1425}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4936707d1431cb44f459dbe3f2b8da231bd5f2e725dda62a65f89a02b8314e8"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/proc/constant_evaluator.rs: naga/src/proc/constant_evaluator.rs changed 4 times in last 90 days, max cyclomatic complexity 119 in ConstantEvaluator::cast at line 2486. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/proc/constant_evaluator.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":2486}}}],"partialFingerprints":{"codehealthFindingId/v1":"82212d496f0c7dcbe61df89bcf0adec722cc7421b148c1a27a5d9ed08d062ede"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/front/wgsl/lower/mod.rs: naga/src/front/wgsl/lower/mod.rs changed 6 times in last 90 days, max cyclomatic complexity 74 in Lowerer::call_builtin at line 3094. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/front/wgsl/lower/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":3094}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8a852eb10d855c65f2c95541998184a1df9106c8b0f219e84dbd4614b236e40"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/valid/expression.rs: naga/src/valid/expression.rs changed 2 times in last 90 days, max cyclomatic complexity 211 in Validator::validate_expression at line 382. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/valid/expression.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":382}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6ab3daf3e9beb4e42bf7dc54486e6a55b671d53e866fa0e0e206e6039bc2282"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/instance.rs: wgpu-core/src/instance.rs changed 20 times in last 90 days, max cyclomatic complexity 21 in Instance::request_adapter at line 481. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/instance.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fb18f2b5c8defb1ec66f11a1c09774db99e5422a5ea4976f9b9301dd229278d"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/valid/function.rs: naga/src/valid/function.rs changed 3 times in last 90 days, max cyclomatic complexity 133 in Validator::validate_block_impl at line 789. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/valid/function.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":789}}}],"partialFingerprints":{"codehealthFindingId/v1":"2224c30ebc250c36b0212677133f4f325f2d657d0b3279a3f096b9e68fec8529"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/command/mod.rs: wgpu-core/src/command/mod.rs changed 17 times in last 90 days, max cyclomatic complexity 23 in CommandEncoder::encode_commands at line 1085. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/command/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":1085}}}],"partialFingerprints":{"codehealthFindingId/v1":"849e8f6ec25354b7669b852f18781f4c3109f9855a8ff1eff02e442c96d523f7"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/spv/writer.rs: naga/src/back/spv/writer.rs changed 5 times in last 90 days, max cyclomatic complexity 73 in Writer::map_binding at line 3118. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/spv/writer.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":3118}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e27398aa6b897a0231dffec337aca0ddec8a78a52e64c640aa361c7cd6c6749"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/command/compute.rs: wgpu-core/src/command/compute.rs changed 21 times in last 90 days, max cyclomatic complexity 17 in wgpu_core::command::compute::encode_compute_pass at line 622. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/command/compute.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/compute.rs"},"region":{"startLine":622}}}],"partialFingerprints":{"codehealthFindingId/v1":"b700f600605391e12ae71635129c683692c781699e7334a1d5d191440304f2f3"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/dx12/device.rs: wgpu-hal/src/dx12/device.rs changed 8 times in last 90 days, max cyclomatic complexity 38 in Device::create_pipeline_layout at line 970. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/dx12/device.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":970}}}],"partialFingerprints":{"codehealthFindingId/v1":"64801ba76ca7fef05ecd577ebf2820365b7130cd8aaa7171ad3d534bbaf4c123"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core-remote/src/global/render_pass.rs: wgpu-core-remote/src/global/render_pass.rs changed 14 times in last 90 days, max cyclomatic complexity 20 in Global::handle_render_pass_command at line 415. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core-remote/src/global/render_pass.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core-remote/src/global/render_pass.rs"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"d21d159b44d9c2b652264732b2cb1125736d29035adfc2c1c25ae0ff92d899f0"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/metal/command.rs: wgpu-hal/src/metal/command.rs changed 9 times in last 90 days, max cyclomatic complexity 31 in CommandEncoder::update_bind_group_state at line 311. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/metal/command.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"e911694204874a766b7a85c0dd43288ee1046a4d2fa846937727c6973565f93b"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/wgsl/writer.rs: naga/src/back/wgsl/writer.rs changed 3 times in last 90 days, max cyclomatic complexity 90 in Writer::write_stmt at line 746. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/wgsl/writer.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"d36519cf5a0a93d37319c16af5d05a60a24c7c5b80831124406b7c5284da80ba"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/vulkan/instance.rs: wgpu-hal/src/vulkan/instance.rs changed 10 times in last 90 days, max cyclomatic complexity 25 in Instance::init_with_callback at line 765. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/vulkan/instance.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"56766d6ac5aac0e1d707b379c801429fe83e96d0c2b6dac1bfc83f6f9a5d1eb1"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/proc/mod.rs: naga/src/proc/mod.rs changed 3 times in last 90 days, max cyclomatic complexity 79 in MathFunction::argument_count at line 289. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/proc/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/mod.rs"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"633393e4127d0ac17d3a8bcb80958e3667eb41bde4d9960964db364664a68da1"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/vulkan/device.rs: wgpu-hal/src/vulkan/device.rs changed 9 times in last 90 days, max cyclomatic complexity 26 in Device::create_render_pipeline at line 1982. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/vulkan/device.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1982}}}],"partialFingerprints":{"codehealthFindingId/v1":"317aae28f30a0b7ed3c97a5fa6c3a9751f469be2c96110ef7b6654d0d05fe24c"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/lock/rank.rs: wgpu-core/src/lock/rank.rs changed 7 times in last 90 days, max cyclomatic complexity 33 in LockRankSet::member_name at line 74. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/lock/rank.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/lock/rank.rs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"49b3a38bece67a4b96f81dfbe7a361a793ba3387113b90c4adc1731f8072731d"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/msl/mod.rs: naga/src/back/msl/mod.rs changed 5 times in last 90 days, max cyclomatic complexity 41 in ResolvedBinding::try_fmt at line 646. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/msl/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":646}}}],"partialFingerprints":{"codehealthFindingId/v1":"12c1746af5aad432947c79c3ed1ab64d0fe6c98b9ae3f6cd1a1d1641864fb901"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/metal/surface.rs: wgpu-hal/src/metal/surface.rs changed 10 times in last 90 days, max cyclomatic complexity 19 in Surface::configure at line 248. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/metal/surface.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/surface.rs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"99b5e7204b6816f9bc0038237677e19d73bcd62a331bf341934810689d73cb0e"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: player/src/bin/play.rs: player/src/bin/play.rs changed 7 times in last 90 days, max cyclomatic complexity 27 in player::bin::play::main at line 4. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- player/src/bin/play.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"player/src/bin/play.rs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"732c7d2c1196f000e2d412fd06f70255622cf56b94b10be9e22036a5664056ae"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/gles/egl.rs: wgpu-hal/src/gles/egl.rs changed 6 times in last 90 days, max cyclomatic complexity 29 in Inner::create at line 408. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/gles/egl.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":408}}}],"partialFingerprints":{"codehealthFindingId/v1":"d218ce4dc1811227b7ff872924ae9d57cab52c4ac004cef7d34aec4cad860179"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/metal/conv.rs: wgpu-hal/src/metal/conv.rs changed 4 times in last 90 days, max cyclomatic complexity 43 in wgpu_hal::metal::conv::map_vertex_format at line 199. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/metal/conv.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/conv.rs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"46bae39bb9cb3f21f0fec23a6b6c1cff583aea78aa4aafbabf54ae146f93c09c"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: deno_webgpu/render_pipeline.rs: deno_webgpu/render_pipeline.rs changed 4 times in last 90 days, max cyclomatic complexity 42 in VertexFormat::from at line 504. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- deno_webgpu/render_pipeline.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/render_pipeline.rs"},"region":{"startLine":504}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3d112a7f38057e7ca13d12f6ef42a9348fe13bbd1530b8d30a53a5b3008a91f"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/valid/type.rs: naga/src/valid/type.rs changed 2 times in last 90 days, max cyclomatic complexity 83 in Validator::validate_type at line 383. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/valid/type.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f69a268a065eaf7d55f4708f019d2fe73c88ae8fb23edd66e7f80b9dc1e750f"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/pipeline_constants.rs: naga/src/back/pipeline_constants.rs changed 4 times in last 90 days, max cyclomatic complexity 39 in naga::back::pipeline_constants::adjust_stmt at line 721. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/pipeline_constants.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/pipeline_constants.rs"},"region":{"startLine":721}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb65b605e4df68405f3b3123c2152ccbf43493f021354d7d74450af786ea5107"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/valid/analyzer.rs: naga/src/valid/analyzer.rs changed 3 times in last 90 days, max cyclomatic complexity 51 in FunctionInfo::process_expression at line 531. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/valid/analyzer.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":531}}}],"partialFingerprints":{"codehealthFindingId/v1":"708805ab942c269f2486b99a3dc781e95cb9c050990050630b20916d62397bbe"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/dot/mod.rs: naga/src/back/dot/mod.rs changed 2 times in last 90 days, max cyclomatic complexity 71 in StatementGraph::add at line 65. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/dot/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"adb86f48ce2440a7681754c3deab7c8fc7ef5276815a809dacdfcf89e2c5fdad"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/glsl/features.rs: naga/src/back/glsl/features.rs changed 2 times in last 90 days, max cyclomatic complexity 69 in FeaturesManager::check_availability at line 96. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/glsl/features.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"e99d028d458d11834d6a6c0315d56569c70eb34f7951b797bea2baff9d0d8f5f"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/gles/mod.rs: wgpu-hal/src/gles/mod.rs changed 6 times in last 90 days, max cyclomatic complexity 22 in wgpu_hal::gles::gl_debug_message_callback at line 1156. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/gles/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/mod.rs"},"region":{"startLine":1156}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e5dda63a33919be07762a349c05e2a8088514422e1907e0c01016b901b538a7"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/gles/device.rs: wgpu-hal/src/gles/device.rs changed 6 times in last 90 days, max cyclomatic complexity 20 in Device::create_buffer at line 684. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/gles/device.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":684}}}],"partialFingerprints":{"codehealthFindingId/v1":"07fe9d9f8721c902dc39eebb0b90eef215b38f30c7271e1e5c84cbc07e26f071"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/dx12/command.rs: wgpu-hal/src/dx12/command.rs changed 5 times in last 90 days, max cyclomatic complexity 23 in CommandEncoder::begin_render_pass at line 1026. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/dx12/command.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1026}}}],"partialFingerprints":{"codehealthFindingId/v1":"83c0070fdb4becf3718f744eb06f48da4b9ef6da2aa25a7a4e04dd38d59f1c57"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/valid/handles.rs: naga/src/valid/handles.rs changed 3 times in last 90 days, max cyclomatic complexity 38 in Validator::validate_module_handles at line 34. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/valid/handles.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"850753d93ba5ac424e784cfd7f8293ef5cae755d5cf6381e95eb979347bc3e9c"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/front/wgsl/parse/mod.rs: naga/src/front/wgsl/parse/mod.rs changed 2 times in last 90 days, max cyclomatic complexity 53 in Parser::global_decl at line 1839. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/front/wgsl/parse/mod.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/mod.rs"},"region":{"startLine":1839}}}],"partialFingerprints":{"codehealthFindingId/v1":"83f6988a8156787e5b563f2a0d7cb9beaa9f61a56e5d3d88358badb44f5cf02d"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/gles/command.rs: wgpu-hal/src/gles/command.rs changed 3 times in last 90 days, max cyclomatic complexity 34 in CommandEncoder::begin_render_pass at line 498. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/gles/command.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a6d7b22a613e01fe48b2767f4a54f54235f96a5f7da4488ac896e92841ace1a"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-naga-bridge/src/lib.rs: wgpu-naga-bridge/src/lib.rs changed 2 times in last 90 days, max cyclomatic complexity 42 in wgpu_naga_bridge::map_storage_format_to_naga at line 208. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-naga-bridge/src/lib.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-naga-bridge/src/lib.rs"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"41fe138dc2dcc7645f5e17d87105daf9b862c89fed778204b82373b9e25e91b7"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/compact/statements.rs: naga/src/compact/statements.rs changed 2 times in last 90 days, max cyclomatic complexity 33 in FunctionTracer::trace_block at line 9. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/compact/statements.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/compact/statements.rs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f4097b4bdf243fd18426bd02d93b7ad32a84589dfbf1dbe5bd25bf72d32323c"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/back/msl/ray.rs: naga/src/back/msl/ray.rs changed 2 times in last 90 days, max cyclomatic complexity 25 in Writer::write_ray_query_stmt at line 198. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/back/msl/ray.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/ray.rs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc7bd8c8e40ef223bb67ed5cfc7a45a3ea1f99fd8bbe2dee90c2c867f5676e5f"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-hal/src/dx12/conv.rs: wgpu-hal/src/dx12/conv.rs changed 2 times in last 90 days, max cyclomatic complexity 23 in wgpu_hal::dx12::conv::map_blend_factor at line 265. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-hal/src/dx12/conv.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/conv.rs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e6c1b43b0cbc4bdd0519b0f2cbda74eaa4815b756e8320e777ee49f5285e9a3"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: wgpu-core/src/track/texture.rs: wgpu-core/src/track/texture.rs changed 2 times in last 90 days, max cyclomatic complexity 21 in wgpu_core::track::texture::update at line 1460. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/track/texture.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/texture.rs"},"region":{"startLine":1460}}}],"partialFingerprints":{"codehealthFindingId/v1":"084b2e4942e99523936ab41eed9104a26c0c62861a20ba73c03abfa7aebf6865"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: naga/src/front/wgsl/parse/directive/enable_extension.rs: naga/src/front/wgsl/parse/directive/enable_extension.rs changed 2 times in last 90 days, max cyclomatic complexity 16 in EnableExtension::from_ident at line 153. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, with the area under test before it moves. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- naga/src/front/wgsl/parse/directive/enable_extension.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/directive/enable_extension.rs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"97e207a41187f64784eb3bdc074a052be88eeaa1a5d2b1dddcab0d4e3828c837"}},{"ruleId":"D15","level":"warning","message":{"text":"Repeated repair: wgpu-core/src/command/memory_init.rs: wgpu-core/src/command/memory_init.rs changed 4 times in last 90 days and 4 of those changes were fix/bug commits, so repair is the majority of this file\u0027s churn. Its max cyclomatic complexity is 10 (its worst body is BakedCommands::initialize_texture_memory at line 350), UNDER the 15 threshold, so this is deliberately not filed as a churn \u00D7 complexity hotspot \u2014 the difficulty here is in the behaviour the file has to get right, not in its control flow, and refactoring it for complexity would be the wrong move. The repairs counted were: \u201Cfix(core): Init tracking for pass with multiple depth slice attachments\u201D; \u201Cfix(core): Fix init tracking for 3D textures as render attachments\u201D; \u201Cfix(core): Avoid overlapping locks in \u0060initialize_texture_memory\u0060\u201D; \u201Cfix(core): Lose device on errors during critical part of submission\u201D. Each one is a case this code did not handle. Before the next change lands here, check that every one of them is pinned by a test that fails without its fix; where the same area keeps coming back, the durable fix is usually at the interface that keeps being misused rather than at the line that was last corrected. Counted over 2026-06-29..2026-09-27, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-06-29 06:46:29 \u002B00:00\u0027 --until=\u00272026-09-27 06:46:29 \u002B00:00\u0027 --full-history --no-merges -- wgpu-core/src/command/memory_init.rs\u0060: merges are excluded because a merge re-states changes already counted at their own commits, and history is NOT path-simplified because a change that reached the file through a merged branch is still a change to it. That command counts raw commits and can read HIGHER than this row, which counts a cherry-picked re-land, and a revert together with the commit it undoes, once each \u2014 a difference of several commits on a file whose history was re-landed or reverted inside the window."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/memory_init.rs"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"72a63d8f71e322d898bfb8913cc74fe7f9bd8e49d4f7c8aea51192a6e508c24f"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 13 significant file(s) lose their only recent owner: wgpu-core-remote/src/global/render_pass.rs, wgpu-core-remote/src/global/mod.rs, wgpu-core-remote-types/src/encoders.rs, wgpu-core-remote/src/global/command_encoder.rs, wgpu-core-remote/src/global/compute_pass.rs, wgpu-core-remote-types/src/lib.rs, wgpu-core-remote-types/src/binding_model.rs, wgpu-core-remote/src/global/instance.rs (\u002B5 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2908be9cff60b6bf650a9f72211dc25b2b59f512fe54a59f075b1c1ae65c9919"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #2: If anonymized user #2 becomes unavailable, 3 significant file(s) lose their only recent owner: naga/src/common/wgsl/types.rs, wgpu-core/src/track/range.rs, naga/hlsl-snapshots/src/lib.rs. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c048c43b417cdcb6ad3103aa2db9bc01792f699649efb4c20edadf1e7018131b"}},{"ruleId":"D16","level":"note","message":{"text":"Further sole-owners (lower concentration): 4 other contributor(s) are each the sole owner of a small amount of code below the off-boarding threshold \u2014 folded into the bus-factor score and metrics (23 single-owned of 371 analysed files in total, counted over production source files of roughly 2,400 bytes or more, excluding vendored, generated and example/demo trees and test files identified by path convention, largest first; 371 of the 456 production source files in this repository met that bar). They are anonymized user #3 (2 file(s)), anonymized user #4 (2 file(s)), anonymized user #5 (2 file(s)), anonymized user #6 (1 file(s)) \u2014 spread or document their files in the same way, at lower priority than the named off-boarding risks above."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6eac528f2429e724e1a97ed868f79eefbcf1888dab4af9a9e673429369bb5b2f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: as of writing llvmpipe segfaults the bindless benchmark on ci \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"benches/benches/wgpu-benchmark/computepass.rs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b4456b56317596e8ea0a77148a4dbef8d7aa91828d95a62a6ac9358b522d953"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9849): Currently broken on Metal"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"benches/benches/wgpu-benchmark/computepass.rs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"575b7b546020bbe5495d30fb0016059bd0be6406fef4b2a70b3675cba6476dcb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment repeated across 17 files: The identical TodoComment appears in 17 files (19 occurrences) \u2014 almost certainly one boilerplate line from a single migration or decision, not 19 independent debts. Fix the systemic cause once rather than file-by-file. Text: \u0022// TODO(@crowlKats): no-op, needs wpgu to implement changing the label\u0022. Source code is not a task system: track the cleanup where tasks live. (Every occurrence still counts toward the score and metrics.)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"99a7ecb20242b697c16009d52dd2d4332f635d89892097fd497e57489180ece4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(@crowlKats): weakref in texture for view \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"90fff7ae70336e7f25d47713ae019552877c3b6448ad3075bfdb6494be3406d6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(@crowlKats): consider adding an unreachable value that uses unreachable!() \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/error.rs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7eee03ee0aca8f07db8fb4f6170fee97fd4e6255b2c83cc6532060a9074ee42"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(wgpu): needs to support retrieving the label \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pipeline.rs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"d92515ab4973d8a2a4880db9fefeb45183e19593dea12af24b84744cc4734ea7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(@littledivy): This will extend \u0060OffscreenCanvas\u0060 when we add it. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/byow.rs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6ec59e05b47d8f266b4d112cfb56c5129848c9a3a5ae8e229e481d68ebddc9a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8649): implement when wgpu has architecture detection"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":614}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddc29c27f996f335638dd66a000712ecf3ded4ae95352388e3230e805dd34573"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Switch back to full scans of possible options when we expose \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/features/src/msaa_line/mod.rs"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a8b78f7e29df4b54a1e8b03d6b4c3bf53dee102cfcac72d6178c1396d384f30"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Because naga\u0027s capabilities are evaluated on validate, not on write, we cannot make a shader module with unsupported \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/features/src/texture_arrays/mod.rs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee20537c3b34e9dcc97b0f610d85105f36bcd85bfb6ce5292b11eb34196e2025"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: may also fuzz the flags and capabilities \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/fuzz/fuzz_targets/ir.rs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"1be4df594fb5ab1379f96bde983a08c67742f16a3d30811ecc273703b6060a8f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Eliminate this re-export and migrate uses of \u0060crate::Foo\u0060 to \u0060use crate::ir; ir::Foo\u0060. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/lib.rs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"b05afdae00a07ea0bf4c0d0663bf1fecffd141cbe0ae801f008963b0e0d9891c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We need a better fix for named \u0060Load\u0060 expressions \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/mod.rs"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"23f8669b554f69ba9261975e0fe5c29945aa8013cee59968d8bb836ca14dbd79"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: link to the beginning \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/dot/mod.rs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cdcad7def8557727d8a5a031f344e1432da2e938a30ce81ed056fb6b56459d6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Should this be user configurable? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c89d0a701f999fff716cc6a577e413c111b1ba6eb23085549a2e14738d5f46"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9456)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2429}}}],"partialFingerprints":{"codehealthFindingId/v1":"a96067d04cd66b2fb2125d5d0f97811bea1cfa35915fef0edae43c8530abb9d9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9456)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/context.rs"},"region":{"startLine":543}}}],"partialFingerprints":{"codehealthFindingId/v1":"d942c3b28b13d800ad3cd0256fc48676b3ce89ec684dbd96d55b7bfb12220f09"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9456)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6c780a823dd30820ec1a01f71c54c7cb8c72ba7c5c666d7cad660a2fcc8ca7f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9456)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":788}}}],"partialFingerprints":{"codehealthFindingId/v1":"8af9f78b427c8e5dd38ef7ad0d8e1d8900497a03a022071ee9116c0873f89409"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2560}}}],"partialFingerprints":{"codehealthFindingId/v1":"34b65761ae7dd23a70cd6d8f0383614a0ee8d21c6d4f8ee1e00423b5861a4fb4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/conv.rs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc238eb0ba9aaa878728bd828779190a7efbc732f46d0932af1de9a15cef56e4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/conv.rs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"5460dddfb69cc6359d8a2b4583aacc39cc3ba978c1c6ab45e3508e126808c15d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2566}}}],"partialFingerprints":{"codehealthFindingId/v1":"9555a916128d0d44a7bd035414d26f6f889a8ab574776e6b83e16044a4f39bbf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: handle clamp_to_edge \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2626}}}],"partialFingerprints":{"codehealthFindingId/v1":"73591f1f442c96a6bd2e120f9e6bbac47b31144bc1f4515815d2580de6754c94"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // \u0060BinaryOperation::ModuloInt\u0060 below. Remaining TODO: the degenerate \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":2982}}}],"partialFingerprints":{"codehealthFindingId/v1":"459f0edf829665b3d668e36992bae319245e38a30e30054db8c87379a0b2b036"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Boolean mix on desktop required GL_EXT_shader_integer_mix \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":3044}}}],"partialFingerprints":{"codehealthFindingId/v1":"e01e7a6f80b629dae8b3de96695dc836ef9e2aff4fcefb1d2c681637141f070e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Is there even a function for this? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/writer.rs"},"region":{"startLine":4146}}}],"partialFingerprints":{"codehealthFindingId/v1":"363b37a43022a283e0c782f6b81e88e03566cfbc41aa8d6f34884821855c037c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/mod.rs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"f880aba853de77cd679f16afb05f108b5fe142cc5a6523ca47ef10728b721e8c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":2082}}}],"partialFingerprints":{"codehealthFindingId/v1":"cee3ba492aacfda584200cdaf837324d2b3fc93e9b24233367a3b5c6a04254c1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1803}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b9ea889fcca8af43636d6dffb5cca9ec351bb72cbfefadf07278326571bbe5e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/web.rs"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad00c24281cf4dc6020fb8ec28c4ef6a438bab3e687912ea6f554ff751d41d98"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1468}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6a2199bd72973793d2132f9928aa07041fcc56af01ef57df10c9df068a69a7e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1384}}}],"partialFingerprints":{"codehealthFindingId/v1":"0593dfb0f0caed8ef8499dbd2e44c088462b43dd4afe2510d55841438e13453b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1386}}}],"partialFingerprints":{"codehealthFindingId/v1":"503815fddf0fac3b23d98bfb86e0a8064b030e5bb99b63597e0a16432419f437"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1668}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b4ba39163312389522800620bfc753f56337bc40f61bb4bd8063afdd18c8c75"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1678}}}],"partialFingerprints":{"codehealthFindingId/v1":"825dc202d6ed327a7f7ea89eea2c854b6715efa8e22e1f3e46a6d5be7181e961"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/swapchain/native.rs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"f36a10b4083d78bbc093eb4a328ecb0035befd26b499679d62bba82f00bebb68"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: figure out how to map these to glsl things as glsl treats them as arrays \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/conv.rs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf59b1945c4ce93affa88781361d23d0383a58fb3a1f33bc00ea67ac323cb8d7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: we could force fragment outputs to always go through \u0060entry_point_io.output\u0060 path \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":610}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb0c693c1bfc1cf4d21b31367362b578faf076639a05fa28e9d65d2751ed4b0d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: can we narrow this down to just \u0060in\u0060 when possible? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":1950}}}],"partialFingerprints":{"codehealthFindingId/v1":"948851a48e5a974e32c1ac38b361f4406a92c16f66478083c7a0548054cf6dd3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: copy-paste from glsl-out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2234}}}],"partialFingerprints":{"codehealthFindingId/v1":"db3eca84303d59ba17e54171d799710a257c495bf3e249bd8426a418ee9f4f98"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: copy-paste from glsl-out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2244}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d32b3a6eafa8eab086ede4933a09e582fa14922109cc075050abccc24ee7396"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: copy-paste from glsl-out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":2274}}}],"partialFingerprints":{"codehealthFindingId/v1":"565a20d5be54ffc1b63c60cef7b94209d17ae29d1a7998081f4e98daba64af24"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: copy-paste from glsl-out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":791}}}],"partialFingerprints":{"codehealthFindingId/v1":"65f5c9d41b5bc086516ac7d4cf8777ba065eb1d015d5422749be2fd412a69088"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: copy-paste from glsl-out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":831}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f9798e4c6c73b122efa47d803867fc27353940d235a1a6289953d524f93b0fd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: copy-paste from glsl-out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":956}}}],"partialFingerprints":{"codehealthFindingId/v1":"df692688721fa71bc2ece997aa0062d2e672e1dc6bf48b7af66303c74f21dda2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(#7109): This relies on the asint()/asuint() functions which only work"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/writer.rs"},"region":{"startLine":3790}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcbd6c33abd0f5a2f487197b5e1132863c53dc9663940f6448988df2123d79c1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Error used only during development \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/mod.rs"},"region":{"startLine":666}}}],"partialFingerprints":{"codehealthFindingId/v1":"f01c1b9e625ca30092f4da8a96610f5ef43f3d72ba745b2fcb6d2fa086ee3d87"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Error used only during development \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/mod.rs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"a25585b13b2156b7029b63ce621b7598f7dd194d54fad85f4e0682e80360f130"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: we could merge this with iteration in write_wrapped_expression_functions... \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1351}}}],"partialFingerprints":{"codehealthFindingId/v1":"99b56452f27f1d5ae6937aeaa3c7e3c0c605f17e85f32a58bbbcd7d939a1537d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(#7109): asint()/asuint() only support 32-bit integers, so we"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1506}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbf1899600afaa8395b76ca6191641b2ceb5a73d8f7a317570e1709272afc80c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(#7109): asint()/asuint() only support 32-bit integers, so we must"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/help.rs"},"region":{"startLine":1567}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e361719783dd803989aa50ddd9c1045553b0cb638a505c9d55a79c19f77487b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: do we support Zero on \u0060Sampled\u0060 image classes? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":1330}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8a7e4caa5987a4473309a2a9e081ce06864023689c9c897099b6ccb68a4f3a4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: handle undefined behavior of BinaryOperator::Modulo \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":2426}}}],"partialFingerprints":{"codehealthFindingId/v1":"d43bdfafd7427e7fb7ed95664582b16c76a54edfb76724158272de8b7bc864fe"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: we are forcefully deduplicating the expression here \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3648}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f9c288ea9328aff0a8b3861f7177a61ddb409ef35af2dd42d87f6b71ff3028f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: figure out the naming scheme that wouldn\u0027t collide with user names. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":3840}}}],"partialFingerprints":{"codehealthFindingId/v1":"23f6abc1cfe54a7ac1a5f77b2f268874d449cd2f7f2e15c6319f5813efc61a93"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: take care of loop/continuing? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":4496}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1c309cc34229e1cc19601af9f3f645ac68e67c8b9ce953f37c1c3a45d10d839"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: we can postpone this till the relevant expressions are emitted \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/writer.rs"},"region":{"startLine":8341}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1c2d488513bccf30935b9c36fe7a07a88bb5b12de4612b961292c25395260e5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: check for misuse. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/ray.rs"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"a221269931fca8a3416ab3d22df0cb82bfd02864233b1a2f3869c16e0b98d12a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: how to deal with winding? Is it by default the same as the other APIs? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/ray.rs"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9c7eb9403edfbe78fbfe10d8404d7ab124d2b035a22ec470b1bee851d118656"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: figure out how to make this written as a function call \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/msl/mod.rs"},"region":{"startLine":689}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d939966371307b22eea71fa527045f5773dfbff601b974adf57e1a11c0c9048"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO Move to instructions module \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1793}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f92de7a09dbbb9a85c560cdae0794ebaa5d48315fab77f8a595b9bcc0a00f04"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Consider emitting EarlyAndLateFragmentTestsAMD here, if available. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/writer.rs"},"region":{"startLine":1829}}}],"partialFingerprints":{"codehealthFindingId/v1":"be2102e6da51d667ec84f5132c6f0127365efa48abe42bd11f4695013497db63"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: convert most of these into vectors, addressable by handle indices \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/mod.rs"},"region":{"startLine":951}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad23cd2504bb4dd6ab88a4959fd674c1baa8f66dddd171637918ef7ed5541f70"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO Branch Weights not implemented. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/instructions.rs"},"region":{"startLine":1140}}}],"partialFingerprints":{"codehealthFindingId/v1":"73be84a7e96581103e5ac65f730dfe9ff3446f2d9c1449fd508fd94413cb2cff"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: ///HACK: this is taken from std unstable, remove it when std\u0027s floor_char_boundary is stable \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/helpers.rs"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"aebc636f74be17db53786054a491e7d2a52dcfc6de10418273ed22ea2f991414"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: why not just rely on \u0060Fadd\u0060 for matrices? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":1150}}}],"partialFingerprints":{"codehealthFindingId/v1":"c055926a8f81282e3481b875138751574378032ec7719934d464ad6f45a37126"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: consider using integer dot product if VK_KHR_shader_integer_dot_product is available \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":1522}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ab2d8435e9267311529c0f2a2736993d5abd835ccfe82150c092ac665980d4b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: support atomics? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":2940}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1cc5e00d919e34a5fcfb88e979ac275f1a6b2de08c41bfb148493845e008b6b"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK the loop statement is begin with branch instruction, \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":3766}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cb844bc60a295445b4889eebf01bce543daf2db2b79835b1e540d553aef61f0"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: SPIR-V doesn\u0027t have a atomic subtraction, \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/block.rs"},"region":{"startLine":4028}}}],"partialFingerprints":{"codehealthFindingId/v1":"5629317168f963c405ff358dd114f33b0b4ffe9fdddb66ad59eec3689f60eddc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: perhaps this could be replaced with an OpPhi? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/spv/ray/query.rs"},"region":{"startLine":662}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb183d08f631d1e902a4043642107b111363c183d3228547e73d6415a720d091"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Obey named expressions here. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":929}}}],"partialFingerprints":{"codehealthFindingId/v1":"62063e3be85321c3e14783a9ec0c0b42c46c90a5b5de829cfcb2b36b89ed2940"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: we could do the same workaround as we did for the HLSL backend \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/wgsl/writer.rs"},"region":{"startLine":980}}}],"partialFingerprints":{"codehealthFindingId/v1":"823696b3675741827e491505329a6dc4df3f6fd1e8d64f1cc7f882f77f535d08"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: glslang seems to use a counter for variables without \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":430}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f13a939134ff08735bd0eb18c78d6b60cdf3e6679e37ef611fe6bda73710149"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: glsl supports images without format qualifier \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/variables.rs"},"region":{"startLine":575}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e6d6dea0e4cbaf6ab3ba70e8ccdf478a3fbd69be50c6f67df8945e9d2b165a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Check that the texture format and the kind match \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/types.rs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"894cd9f4f06f64388a434b161d5a87fb41f1ab2f5e3320d3793eb4d4aba640e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: glsl support multisampled storage images, naga doesn\u0027t \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/types.rs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"59a9df97e25b7f8c0671c599fb4691ffbf8a92450aad8543aed93e1c3dd66517"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Proper extension handling \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":315}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4389e6d6a3b0ce422fb7947d14434b50b8d0df9008d871c78205aa9f922f120"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: handle some common pragmas? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser.rs"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"19f5f1ebe6e37be396465fdb8f8fa805ca2ab64e7a5d0d920677d12ed63ee42f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Matrices array \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/offset.rs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"14b713ed63282b9a4c10e1b7a560e993dd5ea84ca1a10696129a0d26af1ff4c8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Row major matrices \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/offset.rs"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"a089926b027c63814953aec73b230b82ad79418d83d54495eba8b03c7b64b733"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle error \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/lex.rs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ebb43f3daf81e3bac980f077c568e6202d3d65a06d2ee7e49cde512bd86e37c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: casts \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bcc39dd031e7cfd28de6612f84f2e5ac5172c4c0a74d8a19bc1c5ef362c1536"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Better error reporting \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/functions.rs"},"region":{"startLine":1414}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e86d34e291e6905bfbe56915901e1342ca85f90d4e3647de4a010e68f9a171e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: glsl supports using bias with depth samplers but naga doesn\u0027t \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"a84f47b0e711715407554f034f5c612e3a71134d91d4238b0dfe6383eedbc525"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://github.com/gfx-rs/naga/issues/2526"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/builtins.rs"},"region":{"startLine":1395}}}],"partialFingerprints":{"codehealthFindingId/v1":"51bcedbd9cd929a300862a328327ebef52c5ac29dc3badc683da906421e81401"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://github.com/gfx-rs/naga/issues/2526"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1770}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ffe98c1ce31fe097cf847946b1ef8f6f777c8c92f858c359b73ce979e6b772c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Encode precision hints in the IR \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/ast.rs"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"30ad569e65d95fdf1a1a816da658a23c1c2f507eb26e3dd15cc61b6460e79c76"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: These next ones seem incorrect to me \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/types.rs"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"da7953953df5283571e91a722e7c772bde8a71dbccd89044c4d1bc39d82fd9dc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Implicit conversions \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/functions.rs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"84c8e3c949ddfa4b193a1ce27d76eeb613863ead02abd2a1458e352e8aaad116"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: declaration \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":444}}}],"partialFingerprints":{"codehealthFindingId/v1":"b90c9b919a6cd2875075ae45d3dc32b4c68e97293303396647dc12ab13ae100c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Accept layout arguments \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":624}}}],"partialFingerprints":{"codehealthFindingId/v1":"85133a2561eddae3810d57ed00565f3eb3a0d3ff7dd34ae88499579e05da5b00"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: type_qualifier \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"d480c29ebddbfa430eac1bc90a6934736e51cf69169c6fa0464d210804542a9c"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK \u0060OpAccessChain\u0060 and \u0060OpInBoundsAccessChain\u0060 \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"b110386fc8a17f5407e4cef8c4af8fa8445273e1ff7998c4277744af3c0c6e56"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: convert input and result to unsigned \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1308}}}],"partialFingerprints":{"codehealthFindingId/v1":"9844ed1dee94c3251fe813439deeee0f08f2d68472c8a83d69755b132ee1e7ff"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: convert input and result to signed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1313}}}],"partialFingerprints":{"codehealthFindingId/v1":"084d1cef0f4a5dbed2b095593133b4a946e1af026b3c0c1efa7dfcf6f42d7c43"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK(eddyb) Naga doesn\u0027t seem to have this helper, \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":1977}}}],"partialFingerprints":{"codehealthFindingId/v1":"dba63404b6ba47634bb7560e0c335baec3ea1c29dde1d58b5e88481461fe41f9"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK(eddyb) this has to go to the parent *twice*, because \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2001}}}],"partialFingerprints":{"codehealthFindingId/v1":"e00434613f81056ac788376f3ead8947b9360008acc5b1d972a67f5fa0fef7e0"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK(eddyb) since Naga doesn\u0027t explicitly track \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2030}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4e5bf4cb18ad057e5ffd60aa35fc34ef09e065d882efefe7ec5aa1f28db8f23"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Selection Control Mask \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2244}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c2c6d3ee69ca6e84a5983a9aa2f6677592b1cdc7e371fd9230a5d4286bb2b39"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Loop Control Parameters \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2263}}}],"partialFingerprints":{"codehealthFindingId/v1":"baadb084cdc74abe2aa13db7291df52d15f4a64ba4cd864cc4752ec79eb55038"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: check if the source and target types are the same? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/next_block.rs"},"region":{"startLine":2408}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1f864cc86cd6e6e546515e959bb90324e7e5e55cc94758b619a0755034ce6d9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: the SPIR-V frontend does not read \u0060NonSemantic.DebugPrintf\u0060 extended \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":1668}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad95ca3060721c836958833fea97f6d263d09b43d618b20b9c0a0e8abd2921b8"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK if the underlying type is an image or a sampler, let\u0027s assume \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2401}}}],"partialFingerprints":{"codehealthFindingId/v1":"59c360b61d74768a629823906e39a835ed1f63421243ca1abb2c5cd6136d0ce5"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK same case as in \u0060parse_type_array()\u0060 \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/mod.rs"},"region":{"startLine":2482}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a59daaf234b15f341afbb24e05e09207d26946c929f7e41d73466aad4d4e352"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle arrays and cubes \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/spv/image.rs"},"region":{"startLine":855}}}],"partialFingerprints":{"codehealthFindingId/v1":"59b86af147785ff2de3d2ed639c92a0ed19b56598d1a3d7fe5be1870cb805e26"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: replace with try_map once stabilized \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":1641}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ce1137d7c553d118fd516a21408c4223024182abecbf6d8f7d46a2ee5a2a381"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8440): We shouldn\u0027t ignore the"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/lower/mod.rs"},"region":{"startLine":2717}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6fb7676eec35e68e9cbb24efa0321f3abf32da8d8ce601efd80fdd12899284d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: f16 is not supported \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/wgsl/parse/number.rs"},"region":{"startLine":386}}}],"partialFingerprints":{"codehealthFindingId/v1":"44672bc06d9b58b37f915edc6ba76725090ad835cb65f81935e78f77aecac33b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: should this be unaligned? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/ir/mod.rs"},"region":{"startLine":977}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1458d3b42553e399b5d93888367a05ebe91fed5b16ad5c439d208993813e5a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: consider moving \u0060multisampled: bool\u0060 out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/ir/mod.rs"},"region":{"startLine":984}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa6847917cc7c2d948abcf68ed991e5dcf3d78f1d7a88885558851605d48ef49"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: consider removing \u0060Clone\u0060. It\u0027s not valid to clone \u0060Statement::Emit\u0060 anyway. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/ir/mod.rs"},"region":{"startLine":2022}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fd9074bc8be41a2441e3b7a517882eb58ffdac70ada115bd5afcfaaa1c93809"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: should a vector of i32 be constructible from abstract int? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"78d45ebfbaa89c11e6730a5434d1748939530e314880072d429b1f6fac3bfc71"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: just re-use the expression, ezpz \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1521}}}],"partialFingerprints":{"codehealthFindingId/v1":"5acfb8a26eed628a05f4f8e0ddb378fb89bf4824bf5c172abd56395b95131625"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u0060round_ties_even\u0060 is not available on \u0060half::f16\u0060 yet. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/proc/constant_evaluator.rs"},"region":{"startLine":1663}}}],"partialFingerprints":{"codehealthFindingId/v1":"39acbfdd3adcb931efd3a24f6b50910db012cfa4685192e50127b49546369f0e"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: this could be nicer. We want to allow some structures \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/type.rs"},"region":{"startLine":753}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a1bdebc90b92a699edef6c1a7c174b942dfc2efffc9c802b10ec6eb9d1955d6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: analyze the model at the same time as we validate it, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"219597f3d9e021724a12676e8a7f11e8d51124bfe16a8f33ddcb8dd143a66aaf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8207): Consider removing this"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":648}}}],"partialFingerprints":{"codehealthFindingId/v1":"39942dcf6a71e1d491c00d3916c48b7192763709bdfadc21d3dc5d9c682dfe18"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8207): Consider removing this"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":654}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec1deb480a51bd39934c5c1b18cece99bb8a3762b120b528386f3bd92da061dc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: keep some EP span information? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/mod.rs"},"region":{"startLine":904}}}],"partialFingerprints":{"codehealthFindingId/v1":"e246ac952ed9077d2a28e6372e1f8bb8959dade7c5bd6084ee4ccdd972529575"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: add span info to function arguments \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/interface.rs"},"region":{"startLine":1386}}}],"partialFingerprints":{"codehealthFindingId/v1":"a51637df85bb4b7a0b695c68a543377c9c51f2aee4163d0210803d386142bf5f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: what errors should this be? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d63f0b9d98642217038cdb08cbc432cdab7a05faa701c7a3752c1db6997ca3f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: internal error ? We should never get here. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/handles.rs"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e8942056bd6083c112c15525e6689cba24656a08680eee9979a1f2313176432"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: the format string itself is not validated, so a mismatch between the \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/function.rs"},"region":{"startLine":1789}}}],"partialFingerprints":{"codehealthFindingId/v1":"71b77c0075e024909384e97af6d8554fde990f9dba16080c552b170ac5fc8bb3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: only allow one of these \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/expression.rs"},"region":{"startLine":416}}}],"partialFingerprints":{"codehealthFindingId/v1":"d71cc453c6d3883bfbe981fb87cf9e6700c4ded0431fa0c4da0ec2cdc572a40a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Yes, this isn\u0027t contextualized with source, because \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/valid/analyzer.rs"},"region":{"startLine":910}}}],"partialFingerprints":{"codehealthFindingId/v1":"816357152693a0c1ad1d349f80146e1fd9e5ab7055e08ea51796e14b2ffc7ceb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8153): Add tests for spans"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/tests/naga/wgsl_errors.rs"},"region":{"startLine":1149}}}],"partialFingerprints":{"codehealthFindingId/v1":"81055d90d1d691be51a47a0e752ca6e6164e88238f013d78426219cd605f247d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8153): Add tests for spans"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/tests/naga/wgsl_errors.rs"},"region":{"startLine":1239}}}],"partialFingerprints":{"codehealthFindingId/v1":"41ce0c7b5ee10630a4e2f977f48ee0c0ed5d5e2aa419fc5930ae8267e6e0981f"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK escape CR/LF if source code is in side. \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/tests/naga/snapshots.rs"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd1a5e9f07c5784aec30456784df087f6bb57e1cfb750ad46bffadd04ea61b16"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: re-use the validator \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/tests/naga/example_wgsl.rs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"88bc5b456bce07e8f5cda0345302158e2b1956250ed5bc492715ffd7abb04721"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/src/report.rs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7a5245d260c0af1f1e881f70af1bf6de9a986f4ba2e68fc5a04841f75b7b4de"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/src/report.rs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"347f94b8ab4cea52c537a1ec83f3da14202f7919847f0cdd2408580ea1b93fc1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //! TODO: Methods that take resources that weren\u0027t tested here: \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/render_pass_ownership.rs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"861d7066cb783c9a7ce5df3fe324b61c5e658ceb285034b23f2036c244aa1978"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: when naga support for MSL/HLSL mesh shaders lands enable Metal and DX12 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/primitive_index.rs"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ff8a564ce4795ca4e0d587c42825e0251fa157315ebd9c0bcd026a20ce2829d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9545): \u0060wgpu\u0060 should raise an error"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/poll.rs"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb69af5f304e88868a6352ee0dc912597bee2a72919df861c4fb31fba7858858"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9849): mask off"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/naga_capabilities.rs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f45a142cd01e1af3e0a4deceb7531794896bf66e97569d0af042999fd9dcd6b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/7781) revisit this"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/encoder.rs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fd7d85d64bdf43bb4f0d69b87069603d47edfb55c56ed265c89ed571d67e112"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: when support for mesh shaders in naga on dx12/metal lands enable those backends \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/draw_index.rs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"508456bac4b90459d271db0515be8d77ad8704758a646f332445caae500a0933"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: use div_ceil once stabilized \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/shader/zero_init_workgroup_mem.rs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"d95d8b59b5764ec59ce41694da847cb418eb6a1e8c336ad19650f08201baa2ae"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // // TODO: Restore this with the resolution for \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-gpu/shader/array_size_overrides.rs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"f70ffde7cf5afa47261f1e7d6238f5d74d312ee244c4bcd020fcf5de5b9b001b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Now that MAP_WRITE mappings are write-only, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-validation/api/buffer_mapping.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4e92487243115ac0ea2a9af35fb51693600f81924ce9a1022263e1112dd6456"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Is the goal of these tests to ensure that zeroes are what is exposed to Rust, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/tests/wgpu-validation/api/buffer_mapping.rs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"26cdd1c88c55ef5718a244f8af65b2dbb1c4219c40035dbb2236c23f91aedb9b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9306): we are ignoring the transition"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/resource.rs"},"region":{"startLine":866}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e1ba08432899239f822c9aef12af0f7d894d6b4335b1e722a7e5b31d3b84529"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Is it plausible that this would happen \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline_cache.rs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"385927cbe6884fbb8919f0dab758066a973116428f71ec2bba194eaa77ca692e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(#8286): Should expose timeout to poll_all."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"d60909341e168776e7d8824a60ce30eb32c012856c2a4854b9e67c4b61fe346e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Extract display from HAL instance if available? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b9218579914e036e6b82bc24cf07d33378cf48852a12fd6bf38178ceed8d16e"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: We must take ownership of the field here, without being able to pass it into \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/instance.rs"},"region":{"startLine":719}}}],"partialFingerprints":{"codehealthFindingId/v1":"a048ceb75df1dac886af4b5862309a454869e85ed748000572ab570588862cd3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: there may be additional variants here that can be extracted into \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/binding_model.rs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3e28ea6af9b46f5aa74508247d5654e899972ac07f54ea7e69b73392e71d9e2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: try to avoid this the collection. It\u0027s needed because both \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/transfer.rs"},"region":{"startLine":1595}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb0045081d167e0de43c192376e5e34c77008bbe7d7d21cf13de4c1e2b37ee89"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: use half-float to reduce the size? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render_command.rs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"65b815d0c9e387bd8c68d0b1f9792f048d742bb71b266b92236ecb56834429c5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(wumpf): by restructuring the code, we could get rid of some of this Arc clone. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/render.rs"},"region":{"startLine":2304}}}],"partialFingerprints":{"codehealthFindingId/v1":"921095e7c7bdda0154ff43daee280accc29d8fbe0475be465b37c2530d536cc2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //! TODO: High-level description of command encoding. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":3}}}],"partialFingerprints":{"codehealthFindingId/v1":"93f0486adb5f8ad903cba1965813fb3ad34a4d47eab9b6079ea5bb51a25afd35"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Extract out the 2 error variants below so that we can always \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/mod.rs"},"region":{"startLine":2011}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae67739f6c663dedfb32704d4a8f0ab6b12e7420a83290271c7077d1c58fd761"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Could we attempt some range collapsing here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/memory_init.rs"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"f814906d52c6e769f0e30a588c7a4335ba4dfb5db001cbc1993ae2e79922e225"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Currently COPY_DST for NV12 and P010 textures is unsupported. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/clear.rs"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"72f4fc3c3f0b1d8c9edf394a6cd712e2fbc459cdbe8f9d583209c71bb730c81f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Only doing one layer at a time for volume textures right now. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/command/clear.rs"},"region":{"startLine":467}}}],"partialFingerprints":{"codehealthFindingId/v1":"440e694afad0d42567f823d8b057ac4e77bf83ebc09c485abdd05e1dfe662f83"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8491): fix"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":1849}}}],"partialFingerprints":{"codehealthFindingId/v1":"66376ae50ce22fb74c9024acba6e5ecc1f06b6a3fcc5c1830ff638e71cce9b35"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: check for wgt::DownlevelFlags::COMPARISON_SAMPLERS \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2407}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dfcc5534cc25125bf66f2c3592d077e15519789c2e288c19238d1d8289a2144"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: should this be combined with \u0060get_introspection_bind_group_layouts\u0060 in some way? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/resource.rs"},"region":{"startLine":2872}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce42ed3fe4b787940d5d29800567be7a3129206d1304520ff4735a1f96aa0da3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: move out common parts of write_xxx. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":720}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e53f750d316ff79f09c614acc591d8d01788630158b09eeabdb38a16d9f4b3b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Tracing \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":2018}}}],"partialFingerprints":{"codehealthFindingId/v1":"efde6923f37d96719b0b2c58f1edc2b8194a1435536f84d48d97aa51477d3e54"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(\u003Chttps://github.com/gfx-rs/wgpu/issues/8510\u003E): Optimize this."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/device/queue.rs"},"region":{"startLine":2173}}}],"partialFingerprints":{"codehealthFindingId/v1":"d56384baf6b05a057c0aa7357665b5378d8cdfcdc419930d9ee2f3ab0c888a14"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /// TODO(\u003Chttps://github.com/gfx-rs/wgpu/issues/5572\u003E): Resolve invalid"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/lock/rank.rs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7b1258d0b8bf3bd742ed63658a967cc65e95558117af2900d252a159f7510d1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: consider getting rid of it. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/range.rs"},"region":{"startLine":2}}}],"partialFingerprints":{"codehealthFindingId/v1":"b69bd95adf4af21674c58eb72aee3d9c26de3498d9521c498d5df1081e7a5b6d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: randomized/fuzzy testing \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/range.rs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"d32f59c45dd7c5d1223c18f165f2c0392b08547ed74d91d4c87cde9e84c603b0"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // XXX: On WGL this should only be called after the context was \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/examples/raw-gles.rs"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"c66f06a049d56fdd95d22222058572c2a20f9cfac1416ae9c7944fca654cbbc0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO! \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/lib.rs"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bf9f70fd60684aca3d0e9efe8e5f7a3f2813fbb509da835bb8793fc9ae3a504"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/7120): this should have a cfg"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/lib.rs"},"region":{"startLine":260}}}],"partialFingerprints":{"codehealthFindingId/v1":"fed7bf23fb29237e654d18508b16a76391ecfb49c7a240f9adfb89a3163225ff"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: the allocator\u0027s configuration should take hardware capability into \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/lib.rs"},"region":{"startLine":465}}}],"partialFingerprints":{"codehealthFindingId/v1":"81a44836695f92f6a4a42b4299fd4d593fbf199bd073b970cd9932e64469ee48"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://github.com/gfx-rs/wgpu/issues/8625"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/lib.rs"},"region":{"startLine":485}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fb122076a22714654dee1cdd77958aba5f1a46127284f09934790e274175b26"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/rust-lang/rust/issues/18598): avoid indirection via Box once arbitrary types support unsized coercion"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/lib.rs"},"region":{"startLine":601}}}],"partialFingerprints":{"codehealthFindingId/v1":"a207044410057c5e88b29ba04053719c97cb6769f2125a4fccf6da4b4445d6e2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: replace with libloading API once supported \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/renderdoc.rs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"91c0540ca14c03b30d6df258079802099e20b5be237be31cba89fa0943d9e7b6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove this when compat mode is implemented, see \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/mod.rs"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae928b50d41c21233f5a8c27c317c37806a9b1b0735e50d3e39450470b78aa7b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Don\u0027t panic here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/suballocation.rs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"b687e675c9c867dc7b4fa269af2ded7cefd05484b8e3b087e0c66aa642c76e6e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Generic? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a762b95b2cfe3a26300d8faede356bf9bf4e825d5f267379ba64aa64fee0dc1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We\u0027re not given ownership, so we shouldn\u0027t call HANDLE::free(). This puts an extra burden on the caller to keep it alive. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":458}}}],"partialFingerprints":{"codehealthFindingId/v1":"da1cf1895f2eb9199284b69e0da27ddfc660a5b5ad4a2bb534646e9c7e5e4741"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Drop order frees the SWC before the raw image pointers...? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":496}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b90f0a5a2430d6c598ea906250db648d91b0f95743a778b0c56562b993d253c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9865): Consider removing this."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":924}}}],"partialFingerprints":{"codehealthFindingId/v1":"63ad0f6484ccdd24eddda3e84fb9ba72cc4c1282c0d706aa24ee77fb3f46e660"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Return GPU handle directly? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/mod.rs"},"region":{"startLine":948}}}],"partialFingerprints":{"codehealthFindingId/v1":"c51a3c73d9d9de66578eb035eabeba79dfdea56f771aae0b85c2ae32d98bec25"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: reuse the writer \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":363}}}],"partialFingerprints":{"codehealthFindingId/v1":"13d9437c9893b49f357378dae27e3375e52ccb90fbe0151c782dd9613673a575"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: 0 for subresource should be fine here until map and unmap buffer is subresource aware? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":581}}}],"partialFingerprints":{"codehealthFindingId/v1":"21b201766848ab10be78b7fefd9d2dff80bf734947fbba5ecf1b296cf574dd04"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: double-check this. Documentation is a bit misleading - \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":587}}}],"partialFingerprints":{"codehealthFindingId/v1":"b40707f97462aca547215254197accb4b37ccf47691c3a2bedb4be2591144aaf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: put lower bind group indices further down the root signature. See: \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1015}}}],"partialFingerprints":{"codehealthFindingId/v1":"7433c050b2ccbf6a067c4faaea00cf32f23b08622e4661a5a7546744890491dc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9865): There is not currently"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":1645}}}],"partialFingerprints":{"codehealthFindingId/v1":"03e4a2575d8324455eff091aa60190ee393cd04f454df9bacc9ab8fb330e2624"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: when moving to enhanced barriers use Direct3D12::D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/device.rs"},"region":{"startLine":2710}}}],"partialFingerprints":{"codehealthFindingId/v1":"19a790cb15f76ef553d5e4902d576a6408950f686f82c2dcf7fb6a15b860635e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: investigate why tests fail if we set this to 0..1 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcd64abf6562da8905c807cb1050fd83c8290152f5e86903a74e770a884e480a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Is an error expected here and should we print it? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"761e927d1baf265e82fad77169f2dedcb7ee91c1f88be8a9c70c742397cdc5e4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is the same as getting build sizes apart from requiring buffers, should this be de-duped? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1799}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bc47d9c2b2fda50c44b6b78bcaec482e693ed88467f6040c9b40620622baffb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is not very optimal, we should be using [enhanced barriers](https://microsoft.github.io/DirectX-Specs/d3d/D3D12EnhancedBarriers.html) if possible"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/command.rs"},"region":{"startLine":1958}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdf2de2a6582e33348448d23156f5f308b81e1f0b67f425459aa6b87af42c1aa"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: in order to expose this, we need to run a compute shader \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":490}}}],"partialFingerprints":{"codehealthFindingId/v1":"dec593e2a2ced93f9170e03bbbb81e35bca3a44f16ee6092168b7b420f91446f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Determine if IPresentationManager is supported \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":739}}}],"partialFingerprints":{"codehealthFindingId/v1":"1482ff9ec87e57782b47745901b5e9ae188340d56ad54984d8819f655790d721"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: API should be redesigned to avoid this and other descriptor copies that happen due to the dyn api. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dynamic/command.rs"},"region":{"startLine":713}}}],"partialFingerprints":{"codehealthFindingId/v1":"5528cbf76903a68e79e305cdb85517fbb92d868aa6d69f71b6a469ef017d7628"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We can get these SendSync definitions in the upstream metadata if this is the case \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/wgl.rs"},"region":{"startLine":355}}}],"partialFingerprints":{"codehealthFindingId/v1":"f94ac222a56e08debcf3acbc8406e4eb1cfd83b7d4ca8af9e1fafd4645c05a98"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle GLES without framebuffer_texture_3d \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/queue.rs"},"region":{"startLine":733}}}],"partialFingerprints":{"codehealthFindingId/v1":"483c5a11caa75b4392b809e7ae1b9a1a09c829393bffb6cdd273fc88f16d1835"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: detect a cube map; forces cube compatible textures to be cube textures \u2014 a workaround marked in source: record what it is compensating for and what would allow its removal (the upstream fix, the API it is waiting on, the invariant it restores), so the next reader can judge whether it is still needed rather than rediscovering why it is there."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/mod.rs"},"region":{"startLine":521}}}],"partialFingerprints":{"codehealthFindingId/v1":"18ee8e0dc05049d9aa8ee94ca43489c9219e078fb207177dc77254a26e48d0f5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: array layers \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/mod.rs"},"region":{"startLine":665}}}],"partialFingerprints":{"codehealthFindingId/v1":"593ea31b14e650e692a47d0db24db2d2e28acab8bcd6115e81d9d270e3991f6f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: we would have something like \u0060Arc\u003Ctyped_arena::Arena\u003E\u0060 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/mod.rs"},"region":{"startLine":1131}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa681d7198fd85ce407bbdf9133de0a6ec3f561bfe199a378243f179d086dd34"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: EGL_SLOW_CONFIG \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"27a93bb4035055c3dfb48a764d85f7ba94adb540de802c954979dcdfdb75a46d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: include diagnostic details that are currently logged \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"46689d846620387b4963e8b5d70f8c472fb1d7233ab4abd04f77de737848a516"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This extension is also supported on EGL 1.4 with EGL_EXT_platform_base: https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_platform_surfaceless.txt"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":879}}}],"partialFingerprints":{"codehealthFindingId/v1":"04020820c9d9d2734f5acf1882792a06005e403e0d6661215ce403603bb2b1c8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: should we unset the current context here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/egl.rs"},"region":{"startLine":1204}}}],"partialFingerprints":{"codehealthFindingId/v1":"357b623204ede6497c1280fec5531216f6a8340b1519d5aa7cf93d1952dacf4a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: may also be required for other calls involving \u0060buffer_sub_data_u8_slice\u0060 (e.g. copy buffer to buffer and clear buffer) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":761}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2f296b31db55c97fdd6fdf0da3274fa12a222fd177a3d7f5453db50d48be453"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: do we need \u0060glow::MAP_UNSYNCHRONIZED_BIT\u0060? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":788}}}],"partialFingerprints":{"codehealthFindingId/v1":"03f825efbeab821b6e0851a98647755e06d3fce73f2eb432dd2b6714d3ed396b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: do we need to do anything? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":940}}}],"partialFingerprints":{"codehealthFindingId/v1":"15ceb2b7f478c7090f38d5100f2800073666ddfb8f87ebd7c77663cb6803999d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: use \u0060conv::map_view_dimension(desc.dimension)\u0060? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/device.rs"},"region":{"startLine":1227}}}],"partialFingerprints":{"codehealthFindingId/v1":"99cac6a0114f3e2669c1895d2f8f757342e231b1b1e1d79940310dd78bf9fc05"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: could re-use the allocations in all these command buffers \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7b1ca1c2a77ad7f646ebbfcbad261889a7d8dde5e6800a90d084a64318c351e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: what do we do here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/command.rs"},"region":{"startLine":473}}}],"partialFingerprints":{"codehealthFindingId/v1":"73550478db7f3a3abcf9d6413a53b71656fb918680101540ff73e2a0d1af6544"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: make this even more lenient so that we can also accept \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f623c52bb2c8fab4116887b5ea07538e509778cab9fbdd173a871ce169044bb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle Intel Iris XE as discreet \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"b767b1fa656d4cceb94ea4a7633fa611f715609d1da6cd6d87792140d159376c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO, unused currently \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1387}}}],"partialFingerprints":{"codehealthFindingId/v1":"38e57d4bed24c30297e2713f7092c31dda408fb38f9c5a45a0b3a43ecaf0d178"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: iOS/tvOS/visionOS could report EDR headroom via \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/surface.rs"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"b24ac94a0fc09b390281969e3d5e47de538c3873492aa6310000b322088283d7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/surface.rs"},"region":{"startLine":362}}}],"partialFingerprints":{"codehealthFindingId/v1":"906951f03bd7f5fdec97d18ab70f4bc90d5cee59450ceee7467828fb9561fe27"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(madsmtm): Derive this when a release with \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/mod.rs"},"region":{"startLine":1161}}}],"partialFingerprints":{"codehealthFindingId/v1":"7291bb4139293704fc541aa921ff243e90738a0b15f02a3c75907d5b6182a4cf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: support bounds checks on binding arrays \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"327d758a569f04ada828e231c8a92ace1d4c4dffde1e31dac28e6022d6b5de45"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: support bounds checks on binding arrays \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2969}}}],"partialFingerprints":{"codehealthFindingId/v1":"87d6f33f32ac8c84ba886ca87aa823808783182fb4eec812f4bd93739cd796be"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: HazardTrackingModeUntracked \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ebf0d76d4862e518d72631a68c1f6fe65fd757f4a93663a35793e7a34f090c7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: HazardTrackingModeUntracked \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":2021}}}],"partialFingerprints":{"codehealthFindingId/v1":"082b31a6a70391f24e5d80858a44a6bbc40f582224c0b653a53ef969e911317e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is a workaround for what appears to be a Metal validation bug \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1748}}}],"partialFingerprints":{"codehealthFindingId/v1":"3505d6bec00c8ec7fd4b0706bc6747bd62cda733f10489d73f370b5c668f391c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: handle sample mask \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":1818}}}],"partialFingerprints":{"codehealthFindingId/v1":"e55fbed3dad305b88387bc4c8f02349a8b43ac5f0b2bf60984c81d6d60f77f5d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: see https://github.com/gfx-rs/wgpu/issues/7460"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/device.rs"},"region":{"startLine":2262}}}],"partialFingerprints":{"codehealthFindingId/v1":"d589d0d6d5a12ce1673f06c05ba93a6ff2e6682c243129a5809e1d66ecd5a7ee"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: support empty scissors by modifying the viewport \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/command.rs"},"region":{"startLine":1474}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc902343d0b37c7d4313d6c1e42d50d114d4c63c0fb4aa9b5c07df945f02c652"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: separate the mutable comparisons from immutable ones \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1405}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd5bdfea7ef64b87938fc57d0948f449494ba570e21317b57d3d45f4bf5c957"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: add another flag for \u0060first_instance\u0060 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1414}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e04d4120f0b867c28c800806404802664c2bbfe5b7780b7e8507f55167c1951"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: consider implementing this and other texture manipulation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/noop/command.rs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"81cdec00eab268a77d77c512af0a21767d7a5a0ce4d6401fe39a0b6e0ace59ab"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: consider implementing this and other texture manipulation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/noop/command.rs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"8122829fe14e1fc877a979ac6be98c832e6e1ee1c8c3f7f5e862dab906e3cfdd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: consider implementing this and other texture manipulation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/noop/command.rs"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa450f5eb34bffc62cfc324c33d8b8c6ad3c1b1af7989f5b7f73382fc58f0e76"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO there\u0027s no reason why this can\u0027t be unified--the function pointers should all be the same--it\u0027s not clear how to do this with \u0060ash\u0060. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/mod.rs"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"31051805ee7332b828fff9fdb17d552f5a872c710e11091a289d211c857d32c2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: use color fields of \u0060vk::DebugUtilsLabelExt\u0060? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bed7b833de33161cd242cc3f7b0158466754c17c652e58358621ee5acbe4c69"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Replace with ash-window, which also lazy-loads the extension based on handle type \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/instance.rs"},"region":{"startLine":1105}}}],"partialFingerprints":{"codehealthFindingId/v1":"b04c6c4c68ed19d44a25f4743a673e6507325331bca286843fbd17fbf5d16b4a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should use \u0060push_next\u0060 instead, but currently ash does not provide this method for the \u0060ImportMemoryWin32HandleInfoKHR\u0060 type. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"92eace39656365bbab2be9446384b49184c4526a243051479493448666f1ea43"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This length could be reduced to just the number of top-level acceleration \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/device.rs"},"region":{"startLine":1775}}}],"partialFingerprints":{"codehealthFindingId/v1":"4437a3d068744ec64053e1163cc0d1d5a02c54b6ef403b9dffd08ad45f5d9d8a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Code is so large that rustfmt refuses to treat this... :( \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/command.rs"},"region":{"startLine":621}}}],"partialFingerprints":{"codehealthFindingId/v1":"19825106759340ed92cec1af2214fb4a28d4ce081435412d67894c55c7fc4517"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: programmatically determine this, if possible. It\u0027s unclear whether we can \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1736}}}],"partialFingerprints":{"codehealthFindingId/v1":"4730109a1dffa5fb22f378727ffa62271f088cad6bdbbb3c584b74db1020dc4d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Use \u0060vk::API_VERSION_1_4\u0060 after \u0060ash\u0060 is updated. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1943}}}],"partialFingerprints":{"codehealthFindingId/v1":"83cbe2ad1f30be32df408df05b79539a26e51577c184aa7c8e578ec00c60988c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/9742): enable on"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2079}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b0cd97275b3512215ee646ba6f80acf44a9ebb1d5306857bed15a7d6e4681d3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: only enable for particular devices \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2378}}}],"partialFingerprints":{"codehealthFindingId/v1":"e112d3be1745bb1430871652d99975971ac32013f6d9653c98f2f326519c5ded"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: make configurable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2514}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fb953f0ec8217615e0d7e98cafc0e80eccced7fbbbf2ae54bd1559536ce0a00"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: expose this more generally \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":2920}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a020a822620d49a5d5844fe013117751ea9a2a6d59cea11903003a3c0f80e76"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: check for (\u0060VK_KHR_get_physical_device_properties2\u0060 or VK1.1) and (\u0060VK_KHR_format_feature_flags2\u0060 or VK1.3). \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":3502}}}],"partialFingerprints":{"codehealthFindingId/v1":"b031204245084a2a0daf53ef30fe920c4ac2b63244715430624fca6f70586a36"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Right now we\u0027re always truncating the swap chain \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/swapchain/native.rs"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad70db0c0cd27012afea358202df549c66eadc0a60985d66039604917f89a405"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://github.com/gfx-rs/wgpu/issues/2869"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/swapchain/native.rs"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"0227429d041f6c91790df3f42a71efeddef73449851249ad0d29a2e12f018002"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Current implementation no-ops \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/swapchain/native.rs"},"region":{"startLine":600}}}],"partialFingerprints":{"codehealthFindingId/v1":"247a82cc51aa37b0c4d2ce387736b91c337b45d789580231787efd1dcb0e165b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-sync/src/lib.rs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"44160f67ea9210032449ed27257786959bc41c2cc8755004c5ddae747b1bb5a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add an introduction to the necessity of explicit reborrowing. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/write_only.rs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"fda82dbefda68d28c0a539cebe97fcd38f722168e71be97c20a98f0b2eb1eade"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use \u0060NonNull::from_mut()\u0060 when MSRV \u2265 1.89.0 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/write_only.rs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecf0cc08022a570daa78af334bf550e3e03f54e92a1a72879b3eeddacf8c3ebf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: When \u0060feature(slice_ptr_get)\u0060 \u003Chttps://github.com/rust-lang/rust/issues/74265\u003E"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/write_only.rs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2844f7c3dab521715660aff238d03ee2721e0cb1758b0d9a50f3ff9b41647b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: cleaner panic messages \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/write_only.rs"},"region":{"startLine":809}}}],"partialFingerprints":{"codehealthFindingId/v1":"9463e1d161f2f3540be07dd11dba866f01e3972d5bc0d97eae2db3b1edab6c57"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: have more consistent errors so this assertion can be stronger \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/write_only.rs"},"region":{"startLine":1033}}}],"partialFingerprints":{"codehealthFindingId/v1":"516e5171f3c3585e9867ef13fc3d9d4df0ae47ecd177054eb7f289a047de0afd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /// TODO(\u003Chttps://github.com/gfx-rs/wgpu/issues/8491\u003E): It also does not"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/origin_extent.rs"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d6f2623dc7928d2fbc96f777b1b13844193b5efd4a55cedbc7dac04876ef328"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Fill out the differences between shader models more completely \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/limits.rs"},"region":{"startLine":1318}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d112f2c061363f135afdca19814e17602524c08c8c1883c50ec1d2bb5cb558d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO    #[cfg(features=)] \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/counters.rs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"f040ddde366167f0606d2ca13e1b3b665ee4271e1dfc6916f29e768825f5d10d"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // XXX: Rename to total_capacity_bytes following the rename at https://github.com/Traverse-Research/gpu-allocator/pull/266?"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/counters.rs"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"e40cb6c7a5c3791e8ae3a8eac978fbb656659fce48a8f31885499c7d428aba49"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: convert \u0060vendor\u0060 and \u0060device\u0060 to \u0060u32\u0060 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/adapter.rs"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"d34c9f095f73129e4969ee08f2b41b6c477a4398767e777cf97af3020f6661e8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /// TODO(\u003Chttps://github.com/gfx-rs/wgpu/issues/8491\u003E): Remove this note."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-types/src/texture/format.rs"},"region":{"startLine":683}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ef39fce92a939492985762f3d86ffcf8c7f70b1b87ac97354cba8411e04441e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove this when an alternative Mutex implementation is available for \u0060no_std\u0060. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/build.rs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfc47b2d72567dbef900ea95c14c373f8dd6ef03a289fa331bd4b9994265c065"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is potentially overly pessimistic; it may be appropriate to instead allow a \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/surface_texture.rs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcf2a0e14d27794c3998e5d7b3677ca2269357f57fbb1adccc6a670866eb1606"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Differentiate constructors here too? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/instance.rs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"f38528c0df7c0e22a64b5426af9fb7863ab03a2ea02eac148e57580210f27e60"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // Todo: missing map_state https://www.w3.org/TR/webgpu/#dom-gpubuffer-mapstate"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/api/buffer.rs"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"03304bea13fdc93bb3b489c75d337ca48baed5671917738cc8bd9aa177b7dba8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO(https://github.com/gfx-rs/wgpu/issues/8819): populate more fields if/when possible"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":936}}}],"partialFingerprints":{"codehealthFindingId/v1":"534d5f046f74323cedce680856c6686b251a179d6fc72b8dba37de842425554b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: supported_backends should also include wgpu-core-based backends, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":1041}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d6d334e75323c1407f591630c64a51e666bac03f1e2597990be71ca1f3161bb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: supported_backends should also include wgpu-core-based backends, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":1720}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8c15b5ec8f3edc9508fd6e0c65f8acfb6a870e22842df5a0577fab345c50ea3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: support this check, return \u0060None\u0060 if the flag is not set. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":1712}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a870833ee606da567876a94c5586be80cdf70bf1c4a5c17cce0092882631758"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This will leak if weak references is not supported. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":2807}}}],"partialFingerprints":{"codehealthFindingId/v1":"e83fc6fa97616b255f081abea41adb8edf8fd191f2f03a41be2fa014de6a81ed"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This will leak if weak references is not supported. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":2838}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dcf3e2bade08fd3a7830fbec31330c4db804ad51f08bd2261647633f9b16ae5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: actually send this down the error scope \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/backend/webgpu.rs"},"region":{"startLine":2955}}}],"partialFingerprints":{"codehealthFindingId/v1":"279eead5f756278bfc10d5da873ef2beae6fed86d192edb0764d4c4f90cbf3ef"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: For [\u0060belt::StagingBelt\u0060] to be available in \u0060no_std\u0060 its usage of [\u0060std::sync::mpsc\u0060] \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu/src/util/mod.rs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae219cbd8ac85523c8150728c9416f44cc77baf49ff245c56de6c083ab2acf33"}},{"ruleId":"D20","level":"note","message":{"text":"No ADRs found: No ADRs found. No recognised ADR directory (\u0060docs/adr/\u0060, \u0060docs/decisions/\u0060, \u0060adr/\u0060, \u0060docs/rfcs/\u0060, an \u0060ADR0001/\u0060 folder, or their siblings) exists anywhere in this tree. What was searched, so you can tell an empty log from a search that missed one: every directory under the tree (build output, dependencies and VCS metadata excepted), for a document that is either any non-index page inside a recognised ADR directory, whatever its name and however deeply nested (\u0060docs/adr/use-postgres.md\u0060, \u0060docs/adr/2024/0001-x.md\u0060); or a file anywhere whose name is ADR-shaped (\u00600001-use-postgres.md\u0060, \u0060adr-012-caching.md\u0060); or, when neither turned anything up, a document carrying the decision-record signature (an \u0022Architecture Decision Record\u0022 heading, or Status / Context / Decision / Consequences as section headings). A decision log that clears none of these \u2014 unnumbered files outside any recognised directory, without those headings \u2014 is not seen by this check and this row is then wrong. If that is your case, say so rather than renaming anything; otherwise, consider recording architectural decisions in \u0060docs/adr/\u0060."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2bea044ff79d7d275f5a91a6e2f548586178eaf480274c33960ad020c854631"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent error handling and access patterns for handle lookup. \u0060try_get\u0060 returns a Result (implying Option-like behavior or error), \u0060get_mut\u0060 panics or returns directly (unsafe/panic-on-missing), and \u0060check_contains_handle\u0060 is a separate boolean/check operation. This forces users to choose between three different patterns for essentially the same intent: \u0027does this handle exist and can I access it?\u0027.: Unify to a consistent pattern, e.g., \u0060get(handle)\u0060 returning \u0060Option\u003C\u0026T\u003E\u0060 and \u0060get_mut(handle)\u0060 returning \u0060Option\u003C\u0026mut T\u003E\u0060, removing \u0060try_get\u0060 and \u0060check_contains_handle\u0060. (signatures: Arena.try_get(handle: Handle): Result | Arena.get_mut(handle: Handle): T | Arena.check_contains_handle(handle: Handle): Result)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5067a3c12636ddc6fd937c75870d5c89f584b05ce8a09c10d298ffa11110a323"}},{"ruleId":"D22","level":"warning","message":{"text":"Overlapping and confusingly named insertion/fetch operations. \u0060fetch_if_or_append\u0060 and \u0060fetch_or_append\u0060 are very similar, differing only by the presence of a predicate function. \u0060append\u0060 is a simple insertion. The naming convention \u0060fetch_*\u0060 suggests retrieval but these are primarily insertion/lookup hybrids. \u0060fetch_if\u0060 is ambiguous: does it fetch if a condition is met, or fetch and then apply a condition?: Clarify intent. If these are \u0027get or create\u0027 patterns, use consistent names like \u0060get_or_insert\u0060, \u0060get_or_insert_with\u0060, etc. Remove \u0060fetch_if\u0060 if it\u0027s redundant with \u0060fetch_if_or_append\u0060 with a nullary function, or rename to \u0060try_get\u0060. (signatures: Arena.append(value: T, span: Span): Handle | Arena.fetch_if(fun: F): Handle | Arena.fetch_if_or_append(value: T, span: Span, fun: F): Handle | Arena.fetch_or_append(value: T, span: Span): Handle)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4104fd2420c7b34cbdb53e69bd6ffa44ffcae85f496469b31774ac55af687cdd"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for block modification operations. \u0060push\u0060 adds a single item, \u0060append\u0060 adds another block, \u0060extend\u0060 adds items (but takes \u0060u64\u0060 which is suspicious for a block of statements), and \u0060extend_block\u0060 is redundant with \u0060append\u0060. \u0060push\u0060 vs \u0060append\u0060 vs \u0060extend\u0060 is a common Rust pattern, but \u0060append\u0060 taking a \u0060Self\u0060 (another Block) is non-standard (usually \u0060extend\u0060 takes an iterator or \u0060push\u0060 takes a single item). \u0060extend\u0060 taking \u0060u64\u0060 is likely a bug or very specific internal use, breaking the iterator-like naming convention.: Standardize on \u0060push\u0060 for single items, \u0060extend\u0060 for iterators/other blocks. Remove \u0060append\u0060 and \u0060extend_block\u0060 as duplicates. Investigate \u0060extend(item: u64)\u0060. (signatures: Block.push(end: Statement, span: Span) | Block.append(other: Self) | Block.extend(item: u64) | Block.extend_block(other: Self))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"28c806f385830615a8de648e92d00d42c8cb5720c5ab5851782bb497461a7e9c"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for version/target specification across backends. HLSL uses \u0060shader_model\u0060, MSL and GLSL use \u0060lang_version\u0060 or \u0060version\u0060. This makes it hard to configure a generic pipeline or understand the target version without knowing the specific backend\u0027s property name.: Unify to a common property name like \u0060target_version\u0060 or \u0060api_version\u0060 across all backends, or provide a unified abstraction in a higher-level API. (signatures: Options.shader_model: ShaderModel | Options.lang_version: (u8, u8) | Options.version: Version)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5202febb8d6e466313b20bec5226c96351d628f50fb8672d9829c5d47a585434"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for compatibility/fallback flags. \u0060fake_missing_bindings\u0060 is specific to HLSL/MSL, while \u0060spirv_cross_compatibility\u0060 is specific to MSL. These are both \u0027compatibility\u0027 or \u0027fallback\u0027 modes but named differently, making it hard to apply consistent configuration across backends.: Use consistent naming for similar compatibility flags, e.g., \u0060enable_spirv_cross_compatibility\u0060 and \u0060enable_missing_binding_fallback\u0060 or unify into a \u0060compatibility_mode\u0060 enum. (signatures: Options.fake_missing_bindings: bool | Options.spirv_cross_compatibility: bool)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3581adca70c5423d3882d9e05dc82bcaaf386f53f61bfd1b195d3f377e5ff32e"}},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5b70d6e68c313ead3ea5db3b9e8c95a3a75a56a35e5ec99afe941552addf1bd6"},"taxa":[{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e200417c9f27357e41ee6312bfb69618866ebca5671b7713087ac36d3d61cdb9"},"taxa":[{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"df5e270e14d2f172bc076e967dab05adc12b58e7955c91f4d4453bd8c881f792"},"taxa":[{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b256bac905d2bb97ec15cc788b6a06e1f7853467d8488ae9b7dd3956413c9178"},"taxa":[{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"426c9de08219a33b961f57f29175ac5da6b24a7b559f24db25664f0fc7ec6c95"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d7f30d384c201c7596d66830c3f93531f8f71c0973fa32e20ca2ff0c70c628d5"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a5c06053b23c9a333ecf8fd2e021351dbd792a44f1ca7f8d5de7578455e0e8e6"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e7c988028aab61695d0752639a15e204342daf085df4a54ebb1c5d106e66e089"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c1eafe0bd444f339aeb67b6108d2b1f26014c2c61d10cd336c826d90d9c4f44f"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"829cb239b8d0a33d2e269b47fccc4c43764b182291e3484fae50bf7a4cd62008"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7dbaa2d44fddb243d707a63fa43db226c7b505f034509635454c95c80591938c"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c74a1d368ff8b90160f47581bb9f2812a41e0d289e76baecc0eb0f2fcd6edaba"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0fb2e4a6a22d4f9649647c41ea105fd3e734f993c03ef27d2b8d03790fd0f90e"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1ff4e3a4fdcd18b4e860cf5c4c882d90954ffc69e0fb8754ef4d7e5077db7564"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a67ad7dfb83b43c09a831eaecffde30cc73683b9fd0b7fdbdd211d4e52a40b7b"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"bf4c8eee09a97b6201364d657eed522a0084dd9c6b6d7bf40fb6f5fb5b1f4d53"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d384df0c599e3695b40286953c43e9923a2efbe1bbb6df24648637773143e1b5"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4f8dc949b20522e45f1fa929021dc140ee99df5152f3c7e9d8cd3c7b529fc1ef"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4bd6b6abbf39be70d43f20c0303c3f079b8ea52bbc85ba86c5bfe5af2cbc6496"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8750074d2e20406a4b90093c70a4940c4512a95b88c1d3eed37c4040efe3573d"},"taxa":[{"id":"CWE-829","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5922a5beeab5ac077ffb485a783ad545036e79b56239f83da38f3fb84336b113"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"610868c659b2bc4a0ea5bd7cebeddb1d8961b8ebb7c9f31dcc75e07badfe1d8f"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9a9761ad8cbbcee9fd4b4bb09fc1e6e6977230d7588402bc8497b52c5027e99e"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d3f6b0dc7d0843f1539cb8274e739376fd4b1be6c39d73c3f6b7e78cb5af4d8b"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b269e07aa3d9bfb90d59d794c0e6a0b7849b288910031fdd0fe253514c3af463"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"355ee9fdba8596d452516a609f795a54a5bca0f7ed0289c67e6ddbc4bddd9ada"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4975822701b3b96654c82dada9bad969e348a6adefa52cd3bba1b6cfd71c3bb7"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7d885a6c3524cf72fd5a2ed03e9e79b3e2b2b4c2a38e5f00b3f7bb7e4044b710"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c356dafc2d2f879539349393edf47ceccc3e0771bf15e4dae816abd8594fd25c"}},{"ruleId":"D34","level":"error","message":{"text":"Orphaned knowledge: No living knowledge remains for this large file \u2014 its last meaningful change has decayed away; if it breaks, no one currently understands it. Schedule a read-through / add characterisation tests before it bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/hlsl/storage.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d43717d357d42b519cf6a9e7e3dae22e2b7eae989cfb711b84c806f6f373f1f"}},{"ruleId":"D34","level":"error","message":{"text":"Orphaned knowledge: No living knowledge remains for this large file \u2014 its last meaningful change has decayed away; if it breaks, no one currently understands it. Schedule a read-through / add characterisation tests before it bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/declarations.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"25e9faa92e425b7dae995f75233d66c1502371aba790a9556dc89286c4f8a004"}},{"ruleId":"D34","level":"error","message":{"text":"Orphaned knowledge: No living knowledge remains for this large file \u2014 its last meaningful change has decayed away; if it breaks, no one currently understands it. Schedule a read-through / add characterisation tests before it bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/front/glsl/parser/expressions.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eca70e5e3679645d3b0288aac4dffc7e117731c0a70653c2e29da25fdc68c246"}},{"ruleId":"D34","level":"note","message":{"text":"Further orphaned files (smaller): 12 smaller file(s) also have no living knowledge \u2014 folded into the freshness score and metrics rather than raised one row each \u2014 most significant first: naga/src/front/glsl/parser/types.rs, naga/src/back/continue_forward.rs, naga/src/front/glsl/lex.rs, naga/src/front/atomic_upgrade.rs, naga/src/back/spv/subgroup.rs, wgpu/src/util/encoder.rs, naga/src/front/glsl/mod.rs, naga/src/front/glsl/offset.rs (and 4 more) (15 orphaned of 371 analysed files in total, counted over production source files of roughly 2,400 bytes or more, excluding vendored, generated and example/demo trees and test files identified by path convention, largest first; 371 of the 456 production source files in this repository met that bar). Attach the read to the next change that touches one of them: have a second person review that change, and leave behind a short comment or test recording what the file is for, so the knowledge comes back at the cost of a change you were making anyway."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ce861fd78f6935114d3a342cb90ad25870f984e1042954fcbbe27c0e23be3658"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: adapter.rs \u2194 human.rs: \u0060wgpu-hal/src/dx12/adapter.rs\u0060 (context wgpu-hal) and \u0060wgpu-info/src/human.rs\u0060 (context wgpu-info) sit in DIFFERENT parts of the tree yet change together 68% of the time (15 of the 22 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 15 shared commits counted here, the most recent 3 are \u00609920c99c\u0060 feat(core): add \u0060Limits::max_storage_{buffers,textures}_in_{vertex,fr\u2026; \u0060995ee7b3\u0060 add \u0060Limits::max_buffers_and_acceleration_structures_per_shader_stage\u0060; \u0060c841633b\u0060 Bring transient attachment in line with webgpu spec (#9568) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/dx12/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab958e15eccc3d21feea4b6e5a465c46a67ce8b7158ffec67f7ee10039bc1588"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: adapter.rs \u2194 human.rs: \u0060wgpu-hal/src/vulkan/adapter.rs\u0060 (context wgpu-hal) and \u0060wgpu-info/src/human.rs\u0060 (context wgpu-info) sit in DIFFERENT parts of the tree yet change together 68% of the time (15 of the 22 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 15 shared commits counted here, the most recent 3 are \u00609920c99c\u0060 feat(core): add \u0060Limits::max_storage_{buffers,textures}_in_{vertex,fr\u2026; \u0060995ee7b3\u0060 add \u0060Limits::max_buffers_and_acceleration_structures_per_shader_stage\u0060; \u0060c841633b\u0060 Bring transient attachment in line with webgpu spec (#9568) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/vulkan/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d087f0f919248f0fb12bd9e0d720424978ebd7e296edbc23461a45dbbf85edfd"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: conv.rs \u2194 lib.rs: \u0060wgpu-core/src/conv.rs\u0060 (context wgpu-core) and \u0060wgpu-types/src/lib.rs\u0060 (context wgpu-types) sit in DIFFERENT parts of the tree yet change together 67% of the time (43 of the 64 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 43 shared commits counted here, the most recent 3 are \u0060e7fcb948\u0060 Make multi-planar textures renderable (#8307); \u0060f0209e3d\u0060 Add support for transient textures on Vulkan and Metal (#8247); \u00601c43ac2c\u0060 Additional validation of buffer-texture copies (#7948) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/conv.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f57d18126efede77a0c694ed471cb2f0ca03ddfa5aef8fc607de629b2bbe197b"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: human.rs \u2194 webgpu.rs: \u0060wgpu-info/src/human.rs\u0060 (context wgpu-info) and \u0060wgpu/src/backend/webgpu.rs\u0060 (context wgpu) sit in DIFFERENT parts of the tree yet change together 64% of the time (14 of the 22 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 14 shared commits counted here, the most recent 3 are \u00609920c99c\u0060 feat(core): add \u0060Limits::max_storage_{buffers,textures}_in_{vertex,fr\u2026; \u0060995ee7b3\u0060 add \u0060Limits::max_buffers_and_acceleration_structures_per_shader_stage\u0060; \u0060c841633b\u0060 Bring transient attachment in line with webgpu spec (#9568) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-info/src/human.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac988d1deece78a96e1d2d4383a512540dcb0ee995d0c85475c8f78b5d9dda17"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: adapter.rs \u2194 human.rs: \u0060wgpu-hal/src/gles/adapter.rs\u0060 (context wgpu-hal) and \u0060wgpu-info/src/human.rs\u0060 (context wgpu-info) sit in DIFFERENT parts of the tree yet change together 64% of the time (14 of the 22 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 14 shared commits counted here, the most recent 3 are \u00609920c99c\u0060 feat(core): add \u0060Limits::max_storage_{buffers,textures}_in_{vertex,fr\u2026; \u0060995ee7b3\u0060 add \u0060Limits::max_buffers_and_acceleration_structures_per_shader_stage\u0060; \u00604bbed407\u0060 add \u0060max_bind_groups_plus_vertex_buffers\u0060 limit \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"373c605d77e205b311c64e406e015a78fed9e8988a80d0ae0a2b2a0f175f1a44"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: adapter.rs \u2194 human.rs: \u0060wgpu-hal/src/metal/adapter.rs\u0060 (context wgpu-hal) and \u0060wgpu-info/src/human.rs\u0060 (context wgpu-info) sit in DIFFERENT parts of the tree yet change together 55% of the time (12 of the 22 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 12 shared commits counted here, the most recent 3 are \u00609920c99c\u0060 feat(core): add \u0060Limits::max_storage_{buffers,textures}_in_{vertex,fr\u2026; \u0060995ee7b3\u0060 add \u0060Limits::max_buffers_and_acceleration_structures_per_shader_stage\u0060; \u00604bbed407\u0060 add \u0060max_bind_groups_plus_vertex_buffers\u0060 limit \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/metal/adapter.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"70b3940fa11b4534f39471c05c62a2b5d03fb301fd1b72c6775426698bd262ce"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: webidl.rs \u2194 adapter.rs: \u0060deno_webgpu/webidl.rs\u0060 (context deno_webgpu) and \u0060wgpu-hal/src/metal/adapter.rs\u0060 (context wgpu-hal) sit in DIFFERENT parts of the tree yet change together 53% of the time (8 of the 15 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 8 shared commits counted here, the most recent 3 are \u0060ca3239e6\u0060 chore!: Move \u0060PRIMITIVE_INDEX\u0060 feature into the WebGPU group (#9101); \u00603dfa9af0\u0060 Enable \u0060FLOAT32_BLENDABLE\u0060 on Metal, in Deno, and separate from filte\u2026; \u00608f50bb9d\u0060 Make passthrough shaders non-experimental (#9054) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e342a4e66012fc7d2a44bf1c23128f20fa6b043c5a235dd59f7cd732eb852fe"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: conv.rs \u2194 lib.rs: \u0060wgpu-hal/src/auxil/dxgi/conv.rs\u0060 (context wgpu-hal) and \u0060wgpu-types/src/lib.rs\u0060 (context wgpu-types) sit in DIFFERENT parts of the tree yet change together 50% of the time (11 of the 22 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 11 shared commits counted here, the most recent 3 are \u00600b6571a6\u0060 Align Storage Access enums to spec (#6642); \u006007684d36\u0060 Rename Rg11b10UFloat to Rg11b10Ufloat (#6226); \u0060c6a3d927\u0060 \u0060Rg11b10Float\u0060 -\u003E \u0060Rg11b10UFloat\u0060 and deduplicate entries in \u0060TEXTURE\u2026 \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/auxil/dxgi/conv.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b38bbb18321041e0822975cf788f9893610cc8609956fe54cd8bb5aeda79639d"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: pipeline_cache.rs \u2194 lib.rs: \u0060wgpu-core/src/pipeline_cache.rs\u0060 (context wgpu-core) and \u0060wgpu-types/src/lib.rs\u0060 (context wgpu-types) sit in DIFFERENT parts of the tree yet change together 50% of the time (5 of the 10 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 5 shared commits counted here, the most recent 3 are \u006055b45559\u0060 feat(core): Limit bucketing; \u00609a41de4e\u0060 Move subgroup size info to AdapterInfo (#8609); \u00600810110b\u0060 Add pci bus and device uuid to \u0060AdapterInfo\u0060 (#8290) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline_cache.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"baea9cfb33ebf2b488569bd927b0541c92a17bdb9a461ca7d2cc421d4ecbadf7"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: pipeline_cache.rs \u2194 mod.rs: \u0060wgpu-core/src/pipeline_cache.rs\u0060 (context wgpu-core) and \u0060wgpu-hal/src/metal/mod.rs\u0060 (context wgpu-hal) sit in DIFFERENT parts of the tree yet change together 50% of the time (5 of the 10 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 5 shared commits counted here, the most recent 3 are \u0060c841633b\u0060 Bring transient attachment in line with webgpu spec (#9568); \u006055b45559\u0060 feat(core): Limit bucketing; \u00609a41de4e\u0060 Move subgroup size info to AdapterInfo (#8609) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline_cache.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"07b6c30a4f605a576e3468d98dcaf9b34b8af20fecc96162631626152790d254"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: pipeline_cache.rs \u2194 webgpu.rs: \u0060wgpu-core/src/pipeline_cache.rs\u0060 (context wgpu-core) and \u0060wgpu/src/backend/webgpu.rs\u0060 (context wgpu) sit in DIFFERENT parts of the tree yet change together 50% of the time (5 of the 10 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see. You can check this without leaving the row: of the 5 shared commits counted here, the most recent 3 are \u0060c841633b\u0060 Bring transient attachment in line with webgpu spec (#9568); \u006055b45559\u0060 feat(core): Limit bucketing; \u00609a41de4e\u0060 Move subgroup size info to AdapterInfo (#8609) \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/pipeline_cache.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6953d141c32658b684f21a4d5dba0a8ed274df756b0e8d0002bc3853c186052b"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling clique: buffer.rs, stateless.rs, texture.rs: 3 files \u2014 \u0060wgpu-core/src/track/buffer.rs\u0060, \u0060wgpu-core/src/track/stateless.rs\u0060, \u0060wgpu-core/src/track/texture.rs\u0060 \u2014 all change together with no explicit dependency: a fully-connected co-change clique, not 3 separate couplings. They share one concern (thin parallel siblings over a common abstraction), so extract the shared part into ONE unit and the whole clique\u0027s coupling clears at once \u2014 you do not need to break each pair individually."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/track/buffer.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"712303a60fb45f1494b72e35e58e50c620c1ffbee99f66f140f96b5add8777a2"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: draw.rs \u2194 mod.rs: \u0060wgpu-core/src/indirect_validation/draw.rs\u0060 and \u0060wgpu-core/src/timestamp_normalization/mod.rs\u0060 change together 64% of the time (7 of the 11 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well, and counted over this repository\u0027s 10,000 most recent commits rather than its whole history \u2014 a repo-wide or module-wide sweep is evidence about the sweep rather than about any pair inside it and is left out of BOTH sides of this ratio, while a dependency bump, a formatter/rename sweep, or a commit whose edit to one of the two files was a tool directive such as //go:generate or whitespace only is left out of the shared count ONLY, so the two sides are not taken over identical commit sets) with no explicit dependency \u2014 the edge is real but nothing declares it. Read the pair before acting: if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE \u2014 the registration is the link, and it is meant not to be an import \u2014 and the thing to add is a comment on each side naming the other, not a merge; if they simply belong together, co-locate them; if neither holds, the coupling is hidden and worth breaking. You can check this without leaving the row: of the 7 shared commits counted here, the most recent 3 are \u006010ce22b2\u0060 refactor!: subvert-rename \u0060dispatch*\u0060 to \u0060dispatchWorkGroups*\u0060 (#9362); \u0060ce7dad30\u0060 fix: Change type of \u0060max_*_buffer_binding_size\u0060 to follow spec; \u0060ee46a451\u0060 Add labels to indirect validation and timestamp normalization code (#\u2026 \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-core/src/indirect_validation/draw.rs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fc91cf8ef25fe5d99ae7e7f83206478c932dc31a80aa21adbd184d80dbf0d7a"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0e17f71490e4d120a48b2b2881ab866c93b272bef2febb673a3e8e42b2c288ab"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4f1e7684f8281bd255ddef97105c7055c2ebae06964c8745716b83e174debe83"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUAdapter\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Adapter\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e7590d720962ee88798f73d9243cf9bdcc2fbdb6c3915ac6a64e01808df6588"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_types: \u0060GPUSupportedLimits\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Limits\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"2de726f4de5ccdec0ad6ef0c8d4d4f74edb71e452df3245c6c660a8fcef927e3"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_core_remote: \u0060GPUSupportedFeatures\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Global\u0060 from slice \u0027wgpu_core_remote\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":548}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6b1561b713b3052a4649d96ee7304767549b75e29a203e244b70cf103c82e43"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_types: \u0060GPUAdapterInfo\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060AdapterInfo\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/adapter.rs"},"region":{"startLine":587}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0b73e46f8df735c82839975d1b6780da5e5a3a99225ed02e445a7b44c241806"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUBindGroup\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060BindGroup\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/bind_group.rs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9b1f066bd6fd2dabd16de38ae5a2b7dd4bb66956016505b2643729db43c6d14"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUBindGroupLayout\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060BindGroupLayout\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/bind_group_layout.rs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ec741a0c6f5a918cc1fb0245a88c8d45778be25ab232982466a616e101e4d39"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUBuffer\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Buffer\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/buffer.rs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9f01eb7035f9fb446811a565dc767fa13e69b6b85ef4e3da8e83318dbb80c7f"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060UnsafeWindowSurface\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Surface\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/byow.rs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac8abbbe1b93b2f509f898c5fffe690bf8f9a846511a98ecab81e726dd5dd279"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUCommandBuffer\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060CommandBuffer\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/command_buffer.rs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"acd02bf261ac88f7bb1f37798f8f149279191aa70999bb126ce8440e14b5f2d6"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUCommandEncoder\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060CommandEncoder\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/command_encoder.rs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b02abe75da7aae57b2c606c36513b306e857ef2021e47b5ae6397f9d92aed8f"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUComputePassEncoder\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060ComputePass\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pass.rs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"a12a55e3d14e2b4bc8241053b45653ef9d08751e70b22a3db13daac84b5b57e9"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUComputePipeline\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060ComputePipeline\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/compute_pipeline.rs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9ce1f68101ee63b1e7d413a8dc6a3934a7e6c63785a5d002744031c9395f7e7"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUDevice\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Device\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/device.rs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"2170ab5cb235dda24ac3e47be1a5056423f7e12c938a21e1d7e40d30cb1814c3"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060DeviceErrorHandler\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Device\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/error.rs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9321ed9e34bf0759742b4e749ddcf817a041d94cc2101435482132d90f34601"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_core_remote: \u0060EventTargetSetup\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Global\u0060 from slice \u0027wgpu_core_remote\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/lib.rs"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"be7e7ed7687ed1a03fdd775042ae5bf5790664f645d2cea615d14b248a1863fd"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_core_remote: \u0060ErrorEventClass\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Global\u0060 from slice \u0027wgpu_core_remote\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/lib.rs"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"312de0caf31f908f3bd6ad496d472bf20426b26cf4861d2ce8c73f13e095f0f2"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_core_remote: \u0060PipelineErrorClass\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Global\u0060 from slice \u0027wgpu_core_remote\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/lib.rs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"a885d525add18da8be437fa5120b87b0a0b9104aa306469db4a6986f5b63e039"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_core_remote: \u0060WGSLLanguageFeatures\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Global\u0060 from slice \u0027wgpu_core_remote\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/lib.rs"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9668e724a45643afdb79552e4aef220cb940f9ee5e904008d32222a8f2689e2"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUPipelineLayout\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060PipelineLayout\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/pipeline_layout.rs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f835c35c32183d9c0176bb40f28a63f8503a02e8da276b0f82f3ca98d78cbba"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUQuerySet\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060QuerySet\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/query_set.rs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"8975077772530a72d2796d3d08263b7bd13079c69badc831d24557a139bd8e45"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUQueue\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Queue\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/queue.rs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"18cd77bdf88ade2773def7f9008322ade1982a7b343d27a3f60e0b4ac9a22201"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPURenderBundleEncoder\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060RenderBundleEncoder\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/render_bundle.rs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"69bce278434676a6eac576053376bd9084abbb795f76c1c89588829d9e75a208"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPURenderBundle\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060RenderBundle\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/render_bundle.rs"},"region":{"startLine":369}}}],"partialFingerprints":{"codehealthFindingId/v1":"addceb423a0b94efca1277772c434c3355adb254c25d85102e26c84a9b3502d5"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPURenderPassEncoder\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060RenderPass\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/render_pass.rs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"523955d44f11c93d6ca97daf64839cec0a26de48e820e3906f8b193ff00cfbd7"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPURenderPipeline\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060RenderPipeline\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/render_pipeline.rs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa307938eae06263c83fc05ed303e6ba8d73d553176d966770972688fca5fc54"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUSampler\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Sampler\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/sampler.rs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"117ab2f4fce2f3461e9cd17ee37f239f3287e9fce2b00550fbedff2360a86177"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUShaderModule\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060ShaderModule\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/shader.rs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"31e8f76bcad4b54533e153409c56a6a73ec2da17564279855169467fd170da90"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_core_remote: \u0060GPUCompilationInfo\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Global\u0060 from slice \u0027wgpu_core_remote\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/shader.rs"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"df0b127f5cf353071e4557cee72b5da3f9bb9e4b39b4b8dc21d96592b8dd6b2f"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_hal: \u0060Configuration\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060SurfaceConfiguration\u0060 from slice \u0027wgpu_hal\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/surface.rs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"230d49a3fe958cbd67693e0eb44a739f4d6ad7859f78143a40fbe534aad37ec6"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUCanvasContext\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Surface\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/surface.rs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a98aceb96028fdf43abd1b93a92bbe28c7965f092de97b9c7771ff22572fb60"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 naga: \u0060GPUTexture\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Texture\u0060 from slice \u0027naga\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7e960d0afc15d1b2f905918ef76a91193f7d55b1859b33452230883d33f2eda"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUTextureView\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060TextureView\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"c18cdd4d47dd02692c3b19aaf765f86dd54ea885ba0621610f6b7a3da7988ffb"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu: \u0060GPUExternalTexture\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060ExternalTexture\u0060 from slice \u0027wgpu\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/texture.rs"},"region":{"startLine":681}}}],"partialFingerprints":{"codehealthFindingId/v1":"9150f19d166867ddf7f8e9cc836b36c9788604716b642f16e20abccc015cb20a"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_types: \u0060GPUFeatureName\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060Features\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fd6e3cdcc8d748ced8e22e0abf5abd1a2164e87d62df2d07fec7f3afec85ed7"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_types: \u0060GPUTextureUsageFlags\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060TextureUsages\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":406}}}],"partialFingerprints":{"codehealthFindingId/v1":"608532f0837d35a47bc1a3d7c01402d617582dc041959820153224f93f7be560"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_types: \u0060GPUShaderStageFlags\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060ShaderStages\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f4c747986736daf77a2351477c2b5f0fcf9def320dd8d6f9b7e9f8a61b78a5d"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: deno_webgpu \u2192 wgpu_types: \u0060GPUColorWriteFlags\u0060 (slice \u0027deno_webgpu\u0027) depends on \u0060ColorWrites\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"deno_webgpu/webidl.rs"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb2d04645673329381e29d8c4fd580312a66d0347b38133993b5a1230eb2e1f5"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: naga_fuzz \u2192 naga_cli: \u0060OptionsProxy\u0060 (slice \u0027naga_fuzz\u0027) depends on \u0060ShaderStage\u0060 from slice \u0027naga_cli\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/fuzz/fuzz_targets/glsl_parser.rs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"aaf96c29f2da4ca247e28fe69b9a8e267a8d02b10b5211cae7e5872539010139"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: naga \u2192 wgpu_types: \u0060FeaturesManager\u0060 (slice \u0027naga\u0027) depends on \u0060Features\u0060 from slice \u0027wgpu_types\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/features.rs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5b8b8a771764a96d5ddeb319569a8efa0bcdc8071b4fe66cb8ccd7b4009d4be"}},{"ruleId":"AX7","level":"warning","message":{"text":"Cross-slice coupling: naga \u2192 naga_cli: \u0060PipelineOptions\u0060 (slice \u0027naga\u0027) depends on \u0060ShaderStage\u0060 from slice \u0027naga_cli\u0027."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"naga/src/back/glsl/mod.rs"},"region":{"startLine":210}}}],"partialFingerprints":{"codehealthFindingId/v1":"76f88c8b5464d81da63a840873f5516c76f10569a125331693c5ba43f9d69441"}},{"ruleId":"M2","level":"note","message":{"text":"No ADRs: No Architecture Decision Records found \u2014 no conventional ADR directory, no numbered \u0060NNNN-title\u0060 documents in any markup this check reads, and nothing ADR-shaped by content. Design rationale recorded elsewhere (a design-notes tree, a mailing list, pull-request discussion) is not visible to this check and is not re-findable per decision, so a future maintainer cannot ask why one choice was made and get an answer."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"670b3d6e36a756d63097d0dfbf90afd5fc761308800b9354894a07c3f4e4aa14"}},{"ruleId":"P12","level":"warning","message":{"text":"Coverage collected but not gated: CI collects a coverage report but no step enforces a minimum \u2014 coverage could halve and CI stays green. Add a step that fails the build when coverage drops below a floor (your coverage tool\u0027s minimum-threshold flag, or a coverage-gate action) so the number guards something. What was searched, so you can tell an absence from a miss: this repository\u0027s CI files AND its coverage configuration \u2014 the well-known coverage and test-runner config files, read at the repository root and inside workspace package directories two levels down, so a floor declared beside the tests rather than in the pipeline is credited \u2014 matched against the threshold settings this check knows by name. A floor set in your coverage service\u0027s web UI rather than in a committed file, or under a setting whose name is not one of those, is not seen here."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7f63c06044cf998d9a0698692df30d8873e29bc9b0c98ee829255017c1193d33"}},{"ruleId":"X9","level":"note","message":{"text":"Subsumed condition operand: \u0060extensions.contains(\u0022GL_OVR_multiview2\u0022)\u0060 can never decide this \u0060||\u0060 \u2014 every value satisfying \u0060extensions.contains(\u0022GL_OVR_multiview2\u0022)\u0060 also satisfies \u0060extensions.contains(\u0022OVR_multiview2\u0022)\u0060, so the \u0060||\u0060 chain is already decided by the latter. The expression is equivalent to the chain without it, which means it is wider than it reads. Delete the dead operand, or narrow the surviving one if IT is the accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"wgpu-hal/src/gles/adapter.rs"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"9039f5eee195a7dcca380224d28d72b7e84aaf5569bbd766d4f8d934ceda75e3"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1059","guid":"a2381a08-60f6-9554-a8b8-f3018cfaaca5","name":"Insufficient Technical Documentation","shortDescription":{"text":"Insufficient Technical Documentation"},"helpUri":"https://cwe.mitre.org/data/definitions/1059.html"},{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-353","guid":"09d7e902-d4ee-f05d-ae6c-0a1554d0c18f","name":"CWE-353","shortDescription":{"text":"CWE-353"},"helpUri":"https://cwe.mitre.org/data/definitions/353.html"},{"id":"CWE-494","guid":"b8a65e0d-e459-4a55-a931-fc1136482375","name":"Download of Code Without Integrity Check","shortDescription":{"text":"Download of Code Without Integrity Check"},"helpUri":"https://cwe.mitre.org/data/definitions/494.html"},{"id":"CWE-506","guid":"401d6455-56e3-0552-9a39-f77461673e3f","name":"CWE-506","shortDescription":{"text":"CWE-506"},"helpUri":"https://cwe.mitre.org/data/definitions/506.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-829","guid":"13c33925-97fb-5a5e-b40c-56d328b8a4d7","name":"CWE-829","shortDescription":{"text":"CWE-829"},"helpUri":"https://cwe.mitre.org/data/definitions/829.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":33,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}