{"$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":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"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":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"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":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"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":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31","relationships":[{"target":{"id":"CWE-1032","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-16","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1032","CWE-732","CWE-16"]}},{"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":"AX10","name":"Code composition","shortDescription":{"text":"Code composition"},"helpUri":"https://codehealth.canine.dev/dimensions/AX10"},{"id":"AX3","name":"Project dependency cycles","shortDescription":{"text":"Project dependency cycles"},"helpUri":"https://codehealth.canine.dev/dimensions/AX3"},{"id":"AX4","name":"Dependency direction","shortDescription":{"text":"Dependency direction"},"helpUri":"https://codehealth.canine.dev/dimensions/AX4"},{"id":"AX8","name":"Test isolation","shortDescription":{"text":"Test isolation"},"helpUri":"https://codehealth.canine.dev/dimensions/AX8"},{"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":"P10","name":"Library API \u0026 versioning","shortDescription":{"text":"Library API \u0026 versioning"},"helpUri":"https://codehealth.canine.dev/dimensions/P10"},{"id":"P12","name":"CI test-gate honesty","shortDescription":{"text":"CI test-gate honesty"},"helpUri":"https://codehealth.canine.dev/dimensions/P12"},{"id":"P2","name":"Observability","shortDescription":{"text":"Observability"},"helpUri":"https://codehealth.canine.dev/dimensions/P2"},{"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":"P5","name":"DR \u0026 Backup","shortDescription":{"text":"DR \u0026 Backup"},"helpUri":"https://codehealth.canine.dev/dimensions/P5"},{"id":"PF2","name":"Allocation hygiene","shortDescription":{"text":"Allocation hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/PF2"},{"id":"X10","name":"Duplicated predicate","shortDescription":{"text":"Duplicated predicate"},"helpUri":"https://codehealth.canine.dev/dimensions/X10"},{"id":"X32","name":"Type resolved by simple name across every loaded assembly","shortDescription":{"text":"Type resolved by simple name across every loaded assembly"},"helpUri":"https://codehealth.canine.dev/dimensions/X32"},{"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":"SourcesTaskProducer.generateTasks (cyclomatic 161): SourcesTaskProducer.generateTasks has cyclomatic complexity 161 (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":840}}}],"partialFingerprints":{"codehealthFindingId/v1":"555a6fe4fe47d4a46ee1ef4f5c68e95b0f12a0ba1b87358bee8ee8db5b33fba2"}},{"ruleId":"D1","level":"warning","message":{"text":"SourcesTaskProducer.computeLibraries (cyclomatic 99): SourcesTaskProducer.computeLibraries has cyclomatic complexity 99 (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4c2e2109f0a99e846cdefc980a61a76c361af6553155a089d8dc2dcf081ab87"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getCommonTargetTaskOverrides (cyclomatic 84): SettingsBuilder.getCommonTargetTaskOverrides has cyclomatic complexity 84 (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4374}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5fad8b77368099265f71dd7693a838f85bdad81e547c6006a71f8ef1c4fb965"}},{"ruleId":"D1","level":"warning","message":{"text":"TargetDependencyResolver.computeGraph (cyclomatic 83): TargetDependencyResolver.computeGraph 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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1605384dc49f3e3759f353a22d6c9363a425babdda976375607701c7856cb5d"}},{"ruleId":"D1","level":"warning","message":{"text":"SDKRegistry.registerSDK (cyclomatic 76): SDKRegistry.registerSDK has cyclomatic complexity 76 (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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"7db1f3fd2c1e8c96f39f51667186cd3a2af58e6430eb4135080e700ea2e7a1de"}},{"ruleId":"D1","level":"warning","message":{"text":"CopyFilesTaskProducer.addTasksForUngroupedFile (cyclomatic 76): CopyFilesTaskProducer.addTasksForUngroupedFile has cyclomatic complexity 76 (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"d44f36f3e1a78fbdd13c516f305e8bddc785b5ea16114da6cb7d528fc0f567da"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildDescription.construct (cyclomatic 66): BuildDescription.construct has cyclomatic complexity 66 (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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1133}}}],"partialFingerprints":{"codehealthFindingId/v1":"2810766cab182208b37d7f6a37e17b36f1267b309a30da595a866ed9866b7f5b"}},{"ruleId":"D1","level":"warning","message":{"text":"FilesBasedBuildPhaseTaskProducerBase.groupAndAddTasksForFiles (cyclomatic 63): FilesBasedBuildPhaseTaskProducerBase.groupAndAddTasksForFiles has cyclomatic complexity 63 (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf692202622590b2617138e45a07117e6d5697b85f42b28ed1eeb2aa87c720c5"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.construct (cyclomatic 61): SettingsBuilder.construct has cyclomatic complexity 61 (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1462}}}],"partialFingerprints":{"codehealthFindingId/v1":"49b9b92414b64f1920cd7e60ac78d59561b287aababaac3bfbaf90686aef2dd3"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.performTaskAction (cyclomatic 57): InfoPlistProcessorTaskAction.performTaskAction has cyclomatic complexity 57 (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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ec550a60749fbcbb44e5ec7ee86efae9d263824351874b2b4e31476cb26d66d"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.analyzeSettings (cyclomatic 54): SettingsBuilder.analyzeSettings 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5705}}}],"partialFingerprints":{"codehealthFindingId/v1":"95dd4a0e675f8fe9716c6223f9d8fd2fb069756e2a55ddaa9644bb7fa46c4bb1"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildOperation._build (cyclomatic 53): BuildOperation._build has cyclomatic complexity 53 (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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":535}}}],"partialFingerprints":{"codehealthFindingId/v1":"e87ac8e40b62e045a034f730636485acb3b11ed20e5b2bb2bc89f8319b8581ac"}},{"ruleId":"D1","level":"warning","message":{"text":"ActoolCompilerSpec.constructTasks (cyclomatic 52): ActoolCompilerSpec.constructTasks has cyclomatic complexity 52 (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":"Sources/SWBApplePlatform/AssetCatalogCompiler.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2123bce39527bbf5ef3f3fc61b4a1108713473c016ef41e5a517a0350bcc52b"}},{"ruleId":"D1","level":"warning","message":{"text":"ExecutableTask.formattedRuleInfo (cyclomatic 51): ExecutableTask.formattedRuleInfo has cyclomatic complexity 51 (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":"Sources/SWBCore/ExecutableTask.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"103810eb313450bafb72ee84ffc4f6a4fab6d9d5cd66870b9cc3ecea4d2977d8"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftPackageCopyFilesTaskProducer.buildFilesForPackages (cyclomatic 50): SwiftPackageCopyFilesTaskProducer.buildFilesForPackages 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SwiftPackageCopyFilesTaskProducer.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"66034d92cdf5d086068494dda7fea036cef4d9f891954287d6f35c02f969d435"}},{"ruleId":"D1","level":"warning","message":{"text":"DependencyResolver.lookupConfiguredTarget (cyclomatic 49): DependencyResolver.lookupConfiguredTarget 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":792}}}],"partialFingerprints":{"codehealthFindingId/v1":"e88b0107729a3e5a4d52337e22a23da7ae8bac7dd625d79357b23759f0dd55d1"}},{"ruleId":"D1","level":"warning","message":{"text":"RunningTask.init (cyclomatic 48): RunningTask.init has cyclomatic complexity 48 (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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"954755bdc7ff039bb377c7c197c9d44d5641779a64d266b22cb6c60824fbe4d3"}},{"ruleId":"D1","level":"warning","message":{"text":"SWBBuildOperation.handleMessage (cyclomatic 47): SWBBuildOperation.handleMessage 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":"Sources/SwiftBuild/SWBBuildOperation.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"faa7fbaece3fae5d5ce6d63fec67aa16a021941eacdd9761888c7e58fa11689d"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.computeBoundProperties (cyclomatic 45): SettingsBuilder.computeBoundProperties 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1786}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b5362f5a895ef32fe05b41884f44950c8780d69c2eddb51d61dde5c754d05b8"}},{"ruleId":"D1","level":"warning","message":{"text":"Toolchain.init (cyclomatic 42): Toolchain.init has cyclomatic complexity 42 (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":"Sources/SWBCore/ToolchainRegistry.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"78d6008734a77003402bbf1b5795fd31a30b9bcb56c9536c6186f49bc43d6468"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getBuildPhaseTargetTaskOverrides (cyclomatic 42): SettingsBuilder.getBuildPhaseTargetTaskOverrides has cyclomatic complexity 42 (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5071}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e7aa69f6751331e420be5e62ce9df8167c31cb1ce4c20a3f325ed917326607e"}},{"ruleId":"D1","level":"warning","message":{"text":"XCFramework.parseCommandLine (cyclomatic 41): XCFramework.parseCommandLine 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":843}}}],"partialFingerprints":{"codehealthFindingId/v1":"71fe33b1fff725ce36efe5576a68c7d4dc50d531678fe12d946eae9233d6a9e1"}},{"ruleId":"D1","level":"warning","message":{"text":"LinkageDependencyResolver.dependencies (cyclomatic 40): LinkageDependencyResolver.dependencies 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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1f5d0d7208eb71aed9aeb711bc604a01bb1bbe406a3c8ae4e05310b2a4cb9d8"}},{"ruleId":"D1","level":"warning","message":{"text":"LegacySwiftCommandOutputParser.handleMessage (cyclomatic 40): LegacySwiftCommandOutputParser.handleMessage 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":"Sources/SWBCore/SwiftOutputParsing.swift"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"227bb1f9a740b6b192dd8fdd0a6a75928aa4b8cbda8899c652978e999b2c8447"}},{"ruleId":"D1","level":"warning","message":{"text":"fnmatch.swift.fnmatch (cyclomatic 40): fnmatch.swift.fnmatch 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":"Sources/SWBUtil/fnmatch.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"09f8fc43f07e90d4d3bd2c1671edeaf0951fb9f53920234206389b8b9e6e34dc"}},{"ruleId":"D1","level":"warning","message":{"text":"AppIntentsMetadataCompilerSpec.constructTasks (cyclomatic 39): AppIntentsMetadataCompilerSpec.constructTasks has cyclomatic complexity 39 (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":"Sources/SWBApplePlatform/AppIntentsMetadataCompiler.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d7ceca2b6d8a7a569ca5b7b9359ad8ba7879844453b47b94aa6ea602dff700e"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.addRunDestinationSettingsPlatformSDK (cyclomatic 38): SettingsBuilder.addRunDestinationSettingsPlatformSDK 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3794}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3f83f8d29fab0f97cd46e8226176cbd12caa53d62f39276358e5506c2d64c74"}},{"ruleId":"D1","level":"warning","message":{"text":"PlatformRegistry.registerPlatform (cyclomatic 37): PlatformRegistry.registerPlatform has cyclomatic complexity 37 (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":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":441}}}],"partialFingerprints":{"codehealthFindingId/v1":"20d3a4a92dba560730452ed8a990ef2a754261d406205fee9c909e734c62c93b"}},{"ruleId":"D1","level":"warning","message":{"text":"ScannerState.getNextToken (cyclomatic 37): ScannerState.getNextToken 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":"Sources/SWBMacro/MacroConditionExpression.swift"},"region":{"startLine":607}}}],"partialFingerprints":{"codehealthFindingId/v1":"a74536ec9c53d9e28a038ea802e952e109f7fcb8c9fc165e94a70dab4fcb75f4"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.computeSigningSettings (cyclomatic 36): SettingsBuilder.computeSigningSettings has cyclomatic complexity 36 (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3982}}}],"partialFingerprints":{"codehealthFindingId/v1":"852875169d4096e633e283631656a994ae79246607486c6041527cf3f842a7b6"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.parseConfiguration (cyclomatic 36): InfoPlistProcessorTaskAction.parseConfiguration has cyclomatic complexity 36 (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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":378}}}],"partialFingerprints":{"codehealthFindingId/v1":"a491729485fb4424f53b29c0806532adfa63123ed261c8a087c3e3cb3eee1947"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftDriverJobTaskAction.performTaskAction (cyclomatic 35): SwiftDriverJobTaskAction.performTaskAction has cyclomatic complexity 35 (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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"233482eb750f7d922d0991ba0c1b0140c935880f52574f4fe17ec0f4b30a3da9"}},{"ruleId":"D1","level":"warning","message":{"text":"GlobalProductPlan.computeModuleInfo (cyclomatic 34): GlobalProductPlan.computeModuleInfo has cyclomatic complexity 34 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1429}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8b75c0f308ee3671e288036961ff7142cd1f7fae475fd6126b28e2fb426fdc4"}},{"ruleId":"D1","level":"warning","message":{"text":"SWBServiceConsoleBuildCommand.perform (cyclomatic 34): SWBServiceConsoleBuildCommand.perform 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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6b9366ad6edc6d408a1c2486a6dc85da8479f415be611eb54289c7f1fde9c93"}},{"ruleId":"D1","level":"warning","message":{"text":"CoreMLCompilerSpec.constructCoreMLCodeGenerationTasks (cyclomatic 32): CoreMLCompilerSpec.constructCoreMLCodeGenerationTasks has cyclomatic complexity 32 (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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb76e23a340e91d712e447fc2b7484981c324e15cf6815394d74cce0d4fa3b22"}},{"ruleId":"D1","level":"warning","message":{"text":"DependencyCycleFormatter.formattedSingleTargetCycleOutput (cyclomatic 32): DependencyCycleFormatter.formattedSingleTargetCycleOutput has cyclomatic complexity 32 (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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e8a5b8fb3221ff72e554c2809be66dd7b917792cfd9605be0f6dc18ba573b79"}},{"ruleId":"D1","level":"warning","message":{"text":"GlobalProductPlan.checkForDiamondProblemsInPackageProductLinkage (cyclomatic 32): GlobalProductPlan.checkForDiamondProblemsInPackageProductLinkage has cyclomatic complexity 32 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1108}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b906eb7a1f4bf9dfb2a09fa16a5ae21898e0d22366e3f90166c6ed7083d992f"}},{"ruleId":"D1","level":"warning","message":{"text":"IntentsCompilerSpec.constructIntentsCodeGenerationTasks (cyclomatic 30): IntentsCompilerSpec.constructIntentsCodeGenerationTasks 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":"Sources/SWBApplePlatform/IntentsCompiler.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c5206955960cc7ee8ec14eee5058dd46f9fd0b5f1aa97b58f95ff83494914b7"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.addSDKSettings (cyclomatic 30): SettingsBuilder.addSDKSettings 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2725}}}],"partialFingerprints":{"codehealthFindingId/v1":"80134e0259630e01771f54cc439bbbd4694c09b39496ef71121395afcc96d211"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroEvaluationProgram.executeInContext (cyclomatic 29): MacroEvaluationProgram.executeInContext has cyclomatic complexity 29 (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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":372}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1412b182d9e52172a3307aea3daca0ebee3ab7f258a72d6cc98f163a786d709"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildPlan.init (cyclomatic 29): BuildPlan.init has cyclomatic complexity 29 (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":"Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d506cc66624230b280cff9362e6eaeaa8f386e35106c3a0c35805df95f1b1be"}},{"ruleId":"D1","level":"warning","message":{"text":"TAPISymbolExtractorTaskProducer.computeHeadersInputList (cyclomatic 29): TAPISymbolExtractorTaskProducer.computeHeadersInputList has cyclomatic complexity 29 (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4f81a5ec0bcd6dec3d3c30d56b82cf919a6d82b17f995d8fc26d11899f31d62"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.validatePlistContents (cyclomatic 29): InfoPlistProcessorTaskAction.validatePlistContents has cyclomatic complexity 29 (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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1397}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cdead25ead6eb7a0cc5955e36800bd2f286268b92e3cad21ead92481168a92f"}},{"ruleId":"D1","level":"warning","message":{"text":"Path.join (cyclomatic 29): Path.join has cyclomatic complexity 29 (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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"5efe4b6ed788e5eb816d30a869cf1feee8c883611e588ab4cfa1a0c9960d9eb7"}},{"ruleId":"D1","level":"warning","message":{"text":"DependencyCycleFormatter.formattedMultiTargetCycleOutput (cyclomatic 28): DependencyCycleFormatter.formattedMultiTargetCycleOutput 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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d4f0c356becc1fd301085e76c20104f43721d89cb0a4438dbb63eb39e6d806b"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroConfigFileLoader.loadSettingsFromConfig (cyclomatic 28): MacroConfigFileLoader.loadSettingsFromConfig 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":"Sources/SWBCore/MacroConfigFileLoader.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f12fb3fb8c378fb9b55b32280981369b0fc0e172c961e9f11d121f7adf1b835"}},{"ruleId":"D1","level":"warning","message":{"text":"ShellScriptTaskProducer.generateTasks (cyclomatic 28): ShellScriptTaskProducer.generateTasks has cyclomatic complexity 28 (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"5150445d290b54e6b1fdd8c9df1cc1d5c201df211b95825b6cd82d0b9cf44b78"}},{"ruleId":"D1","level":"warning","message":{"text":"GenericCachingTaskAction.performTaskAction (cyclomatic 28): GenericCachingTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/GenericCachingTaskAction.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dfb5b7ac90e5afc1afcff47fd0d0bf94912c2e39357ffb86574b6cbf7a7f1a7"}},{"ruleId":"D1","level":"warning","message":{"text":"SWBBuildServiceConnection.buildServiceLocation (cyclomatic 28): SWBBuildServiceConnection.buildServiceLocation 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"19a1daa3f85632cc336cf2fd7089c2c5db6503b4c81dad02e39c324366b23920"}},{"ruleId":"D1","level":"warning","message":{"text":"AppIntentsMetadataTaskProducer.generateTasks (cyclomatic 27): AppIntentsMetadataTaskProducer.generateTasks 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":"Sources/SWBApplePlatform/AppIntentsMetadataTaskProducer.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"314ef9f147d7684490966a14ffd1810ce944269fe4be0b9e04bb252b08ad09e0"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroExpressionParser.parseQuotedExpressionStringElement (cyclomatic 27): MacroExpressionParser.parseQuotedExpressionStringElement 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":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c3d0470f43b49dec140e978a0ea472a2bfd95560b500397920c775da39eeec5"}},{"ruleId":"D1","level":"warning","message":{"text":"GlobalProductPlan.computeIPIClangInfo (cyclomatic 27): GlobalProductPlan.computeIPIClangInfo 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"57c0c3d8dc3706b1dcd9677fe306a328cc1de7807b4fe92833a82bd4ecea1247"}},{"ruleId":"D1","level":"warning","message":{"text":"ModuleMapTaskProducer.generateTasks (cyclomatic 27): ModuleMapTaskProducer.generateTasks 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"893f44a711e41214b1920172526f3bd1546e5e6ac84c870b48eba6b0fa177189"}},{"ruleId":"D1","level":"warning","message":{"text":"ClangCompileTaskAction.performTaskAction (cyclomatic 27): ClangCompileTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"3078d120fcc5682e8bf730f76f32d2fd38a8da9801e490aa401e1fa4e5cef83d"}},{"ruleId":"D1","level":"warning","message":{"text":"RunningTask.main (cyclomatic 27): RunningTask.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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":756}}}],"partialFingerprints":{"codehealthFindingId/v1":"268f11c83413fb3a1458d1435af4ee1b24ff6d3b306b93b87b291940077f9f9a"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildOperation.build (cyclomatic 26): BuildOperation.build 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":363}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4400424023d71a821632fa7eb39800a43738d7856d19098a0bdd823451d8045"}},{"ruleId":"D1","level":"warning","message":{"text":"XCFramework.createXCFramework (cyclomatic 26): XCFramework.createXCFramework 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1115}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdaa4653badeed6d336625b0bd3544face6b070cccfcf82ea133dd59aa1696b7"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getTargetDerivedSettings (cyclomatic 26): SettingsBuilder.getTargetDerivedSettings 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2230}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c76e68bf5dc573dde9cf1e90130e089e518d078d6e86a0fc0245cd050af2d5e"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.bindDeploymentTarget (cyclomatic 26): SettingsBuilder.bindDeploymentTarget 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5552}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d3a35e39088f11359fc9f992ad8b362ba09f70b30df2aab0695bcf82ebf0cff"}},{"ruleId":"D1","level":"warning","message":{"text":"GlobalProductPlan.generatesModuleMap (cyclomatic 26): GlobalProductPlan.generatesModuleMap 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1559}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfd6ebcef8c24c105cf7286e8f892bb45c36379ba48ffa2ba5a5ef4940d53928"}},{"ruleId":"D1","level":"warning","message":{"text":"ProcessXCFrameworkTaskAction.performTaskAction (cyclomatic 26): ProcessXCFrameworkTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"1310375e781c1e1597a995a11c9f07ce413da80990b65021797074cc050a611b"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftDriverJobSchedulingTaskAction.taskDependencyReady (cyclomatic 26): SwiftDriverJobSchedulingTaskAction.taskDependencyReady 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e147876de94d70e2a584454b4c72891acaaf84367073fdaee3032c4c6602a06"}},{"ruleId":"D1","level":"warning","message":{"text":"OperationSystemAdaptor.determinedRuleNeedsToRun (cyclomatic 25): OperationSystemAdaptor.determinedRuleNeedsToRun 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2543}}}],"partialFingerprints":{"codehealthFindingId/v1":"590c57042cfd5a78aa0852c358055214e6ef4132a1b16cd03e23ab93059cd3bf"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.analyzeExcludedLocalizationFiles (cyclomatic 25): SettingsBuilder.analyzeExcludedLocalizationFiles 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":6001}}}],"partialFingerprints":{"codehealthFindingId/v1":"e033f27aad8c846754a6b42aeef5965413c65e306dfdb34c2cf5b11b99384a08"}},{"ruleId":"D1","level":"warning","message":{"text":"ShellScript.swift.computeScriptEnvironment (cyclomatic 25): ShellScript.swift.computeScriptEnvironment has cyclomatic complexity 25 (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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"59069463fdb6d66567b48c1fdc63d6a0c7f11f68adb4244e1cc8af568b3e9dc7"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroExpressionParser.parseSubstitutionSubexpression (cyclomatic 25): MacroExpressionParser.parseSubstitutionSubexpression 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":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"291c77f6baf3327003ff74684909678000313628399c340dc52aa6fc56630d94"}},{"ruleId":"D1","level":"warning","message":{"text":"LinkAssetCatalogTaskAction.performLinkAssetCatalogTaskAction (cyclomatic 25): LinkAssetCatalogTaskAction.performLinkAssetCatalogTaskAction 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":"Sources/SWBTaskExecution/TaskActions/LinkAssetCatalogTaskAction.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a03a65b8bf7e51155e486ba9e798420fc3983e8e37e1008a499928fe7b4f0b0"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftDriverTaskAction.performTaskAction (cyclomatic 25): SwiftDriverTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"642009e21202591ce210d70f9a437e538637eb1ab28f081529723766f9e7ba8b"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildRequestContext.selectConfiguredTargetForIndex (cyclomatic 24): BuildRequestContext.selectConfiguredTargetForIndex 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":"Sources/SWBCore/BuildRequestContext.swift"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a0d14841a76daa369f3a9212f08f3ce9243db882c1d8b57b7efb25a56c18760"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskProducerContext.forEachBuildProductToSourceMapping (cyclomatic 24): TaskProducerContext.forEachBuildProductToSourceMapping 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"a86075f302b6917f26a35b0e071a45989570656cfca9d8e4d18d24429fc91721"}},{"ruleId":"D1","level":"warning","message":{"text":"XCTestProductPostprocessingTaskProducer.generateXCTRunnerTasks (cyclomatic 24): XCTestProductPostprocessingTaskProducer.generateXCTRunnerTasks 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/XCTestProductTypeTaskProducer.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"16f6d325b7aecb56b2423f1aae1b2ca417d252ed37d4f04365f60d1f95840d12"}},{"ruleId":"D1","level":"warning","message":{"text":"XCFrameworkTaskProducer.prepare (cyclomatic 24): XCFrameworkTaskProducer.prepare 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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/XCFrameworkTaskProducer.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ad92ed0fefe8373c5a7ed3a63193471d690d7eb7d38eda91b55a05f93398a1d"}},{"ruleId":"D1","level":"warning","message":{"text":"PrecompileClangModuleTaskAction.performTaskAction (cyclomatic 24): PrecompileClangModuleTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8c2dd43a959002cb378867235ea786fbdf68ed2ac2983a01a7e8bdb7b4e1c90"}},{"ruleId":"D1","level":"warning","message":{"text":"OperatingSystem.parseOSRelease (cyclomatic 24): OperatingSystem.parseOSRelease has cyclomatic complexity 24 (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":"Sources/SWBUtil/ProcessInfo.swift"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"36ceca7711cf75a636452b6c97343caa6e2806b5b106493710ff408137115e7e"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.addPlatformSettings (cyclomatic 23): SettingsBuilder.addPlatformSettings 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2542}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7fea2b2a3c11c3a5bbb7cb8d6dbf6d272f7c8d4bd324f681c754a75f0c4f495"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskProducerContext.computeFlattenedFrameworksPhaseBuildFiles (cyclomatic 23): TaskProducerContext.computeFlattenedFrameworksPhaseBuildFiles 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1555}}}],"partialFingerprints":{"codehealthFindingId/v1":"51411f13d41ce5b40c1dea6e33b3b1bbbc96ad31e05a7074b8e5084d150ce925"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildDescriptionManager.loadBuildDescription (cyclomatic 23): BuildDescriptionManager.loadBuildDescription 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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2aadeb5671664e7eceb93bde38413bce3040c7de6915201e1e452c76f03ac3b"}},{"ruleId":"D1","level":"warning","message":{"text":"Options.init (cyclomatic 23): Options.init 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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"10fc9dca06b51ab7dc65c77570d471e344e2e264d80e106505f9265d3b79f304"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.editPlatformSpecificEntries (cyclomatic 23): InfoPlistProcessorTaskAction.editPlatformSpecificEntries 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1111}}}],"partialFingerprints":{"codehealthFindingId/v1":"78ec172db986efdde890b889ca44ed3557a1e9c803a4b27c2318a20a66aaf165"}},{"ruleId":"D1","level":"warning","message":{"text":"LLVMStyleCommandCodec.decode (cyclomatic 23): LLVMStyleCommandCodec.decode 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":"Sources/SWBUtil/ArgumentSplitting.swift"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"e57c1ba593005ea2dba374c754a330a8d03c5890c421462b6c10834cab58791b"}},{"ruleId":"D1","level":"warning","message":{"text":"MsgPackDumpTool.execute (cyclomatic 22): MsgPackDumpTool.execute 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":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b0e398d4bbc40d64c83315ee6d2efb2d5bfb4b8655de2a1cf0a1fcba7c221b1"}},{"ruleId":"D1","level":"warning","message":{"text":"XCFramework.validate (cyclomatic 22): XCFramework.validate 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":427}}}],"partialFingerprints":{"codehealthFindingId/v1":"71abb7f0bf9ddf714c71c488383820780c04d44b06fc69ede92e169037eb016d"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.addPreviewsOverrides (cyclomatic 22): SettingsBuilder.addPreviewsOverrides 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3609}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f487ee197c4c06a04febbe2533eea17e06a5c3accf255efe9d44ade5e3b1a7b"}},{"ruleId":"D1","level":"warning","message":{"text":"ValidateProductTaskAction.validateiPadMultiTaskingSplitViewSupport (cyclomatic 22): ValidateProductTaskAction.validateiPadMultiTaskingSplitViewSupport 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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"a58cd178f97c9ffa79000b47d01c1c38a7c233da2a9e9bd99348bdb78a26149d"}},{"ruleId":"D1","level":"warning","message":{"text":"Core.createInitializedTestingCore (cyclomatic 21): Core.createInitializedTestingCore 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Core.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ec11cb42c9bfec03f9b343ed585724e95543540a4a0aa75e65fbc76e2fc6aab"}},{"ruleId":"D1","level":"warning","message":{"text":"TargetDependencyResolver.addDependencies (cyclomatic 21): TargetDependencyResolver.addDependencies 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":690}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b3d579f2e803fc90edefff8436521794d38716c7d12c9cb754eeb42ab0bfe65"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.addSwiftSDKToolsetSettings (cyclomatic 21): SettingsBuilder.addSwiftSDKToolsetSettings 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2946}}}],"partialFingerprints":{"codehealthFindingId/v1":"f07a2831796b301a462c6810bb745b95e543350d56f96b764e607436edd67600"}},{"ruleId":"D1","level":"warning","message":{"text":"TargetOrderTaskProducer.inputsForDependencies (cyclomatic 21): TargetOrderTaskProducer.inputsForDependencies 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5f81279292c646589c85e9d26c73fb420c2b8e279df4d5e06d1e80cc3a403eb"}},{"ruleId":"D1","level":"warning","message":{"text":"CompilationCachingConfigFileTaskProducer.generateTasks (cyclomatic 21): CompilationCachingConfigFileTaskProducer.generateTasks 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/CompilationCachingConfigFileTaskProducer.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9e51059183567521e889bfdec3ca75321d49c504299d482fdce39d9d1721f10"}},{"ruleId":"D1","level":"warning","message":{"text":"CopyStringsFileTaskAction.performTaskAction (cyclomatic 21): CopyStringsFileTaskAction.performTaskAction 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3765faa4b2b71fc0e346e2d3066e071a75b09c55d10bc48d5934b941b72cca9"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroEvaluationMsg.handle (cyclomatic 20): MacroEvaluationMsg.handle 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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1410}}}],"partialFingerprints":{"codehealthFindingId/v1":"67771e4415276add1916300b4f23edf7f9ffc95e65fdc68779bf60abafd842f5"}},{"ruleId":"D1","level":"warning","message":{"text":"PlanningOperation.getProvisioningTaskInputs (cyclomatic 20): PlanningOperation.getProvisioningTaskInputs 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":"Sources/SWBBuildService/PlanningOperation.swift"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"60fa31efd467a8712921ba09bf2640e37210c48c34e477fbe13eb4715f781565"}},{"ruleId":"D1","level":"warning","message":{"text":"XCFramework.libraryInfo (cyclomatic 20): XCFramework.libraryInfo 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. This is NOT this file\u0027s highest cyclomatic complexity: XCFrameworkValidationError.errorDescription (cyclomatic 21) 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 method is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1013}}}],"partialFingerprints":{"codehealthFindingId/v1":"2961083e59ca0b77d4f8026f48e6442cef48102b8e4502c3b8ad16a16dc43659"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getProductSpecificTargetTaskOverrides (cyclomatic 20): SettingsBuilder.getProductSpecificTargetTaskOverrides 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5306}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7b19a50d3c641f6e725dc58203ff1fbde4824aeb4374fa037007df11e1d5e7a"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getSDKSpecificPathOverrides (cyclomatic 20): SettingsBuilder.getSDKSpecificPathOverrides 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5401}}}],"partialFingerprints":{"codehealthFindingId/v1":"2de08f8314828dc866595f2447ac1116da8c180d8f53290080eae5c331aadc81"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroEvaluationRetrievalOperator.apply (cyclomatic 20): MacroEvaluationRetrievalOperator.apply 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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"698b22067f241cb8eea1998c6a4c608a366b6ae3641ff438719201dcbcc0a80a"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftStandardLibrariesTaskProducer.generateTasks (cyclomatic 20): SwiftStandardLibrariesTaskProducer.generateTasks 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftStandardLibrariesTaskProducer.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"e890e128508b21c29aed5a41e934e16575e46d36bcb0279076feeebdb0918398"}},{"ruleId":"D1","level":"warning","message":{"text":"TAPISymbolExtractorTaskProducer.generateTasks (cyclomatic 20): TAPISymbolExtractorTaskProducer.generateTasks 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6c8e5ef23770fe63058308a5e29702c49319d25304a7498de09937d3cef7c02"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildDescription.generatePreviewInfo (cyclomatic 20): BuildDescription.generatePreviewInfo 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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"04e895f67f8dbdbf7b65ae723cfceafdac11e25f0eadffa591532291e389a6fe"}},{"ruleId":"D1","level":"warning","message":{"text":"CopyPlistTaskAction.performTaskAction (cyclomatic 20): CopyPlistTaskAction.performTaskAction has cyclomatic complexity 20 (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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":210}}}],"partialFingerprints":{"codehealthFindingId/v1":"a54a839e9d92e9b86c3d64f8a712b48a99c5c71347f8160cea966d0742475579"}},{"ruleId":"D1","level":"warning","message":{"text":"PbxCp.swift.pbxcp (cyclomatic 20): PbxCp.swift.pbxcp 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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":670}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f9d63024af3e2d62551182657936d94beddf50c278c7779fc0d4c15d5cc3686"}},{"ruleId":"D1","level":"warning","message":{"text":"SWBServiceConsolePrepareForIndexCommand.perform (cyclomatic 20): SWBServiceConsolePrepareForIndexCommand.perform 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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"a915dee3bd86557aa63581baa13c2193ddb284a315a81615bd675bd4ff7afc6e"}},{"ruleId":"D1","level":"warning","message":{"text":"XCFramework.copy (cyclomatic 19): XCFramework.copy 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. This is NOT this file\u0027s highest cyclomatic complexity: XCFrameworkValidationError.errorDescription (cyclomatic 21) 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 method is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1290}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e70143bb9845cbb026cc4dca3b9d8079149993c4758a6702fb7115063267e8f"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildRule.init (cyclomatic 19): BuildRule.init 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":"Sources/SWBCore/ProjectModel/BuildRule.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"93247d65d7cb19edb68b85af12c3459650734bd8ba30377489b20b1061c767d3"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroValueAssignmentTable.init (cyclomatic 19): MacroValueAssignmentTable.init 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":"Sources/SWBMacro/MacroValueAssignmentTable.swift"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"3df35d2b459f0caaaa9c4c228c285ab06584df55b065cd044518618ade9cae57"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildFilesProcessingContext.addFile (cyclomatic 19): BuildFilesProcessingContext.addFile 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f7d6a8ca21c0dd17303e549221b4dc4a2af650e80b76894708255aaf98eca41"}},{"ruleId":"D1","level":"warning","message":{"text":"FileCopyTaskAction.performTaskAction (cyclomatic 19): FileCopyTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/FileCopyTaskAction.swift"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"7eb46b91a9456db44b3c1b0eb0208344ff47910a2e5aec903c2ff2fd14f4051f"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.defaultInfoPlistContent (cyclomatic 19): InfoPlistProcessorTaskAction.defaultInfoPlistContent has cyclomatic complexity 19 (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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":695}}}],"partialFingerprints":{"codehealthFindingId/v1":"36fba609f3784a9aa6295d0feb124de7321e56dcc4bc38a300364c755af51c1d"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftDriverJobSchedulingTaskAction.parseMakefileDependencies (cyclomatic 19): SwiftDriverJobSchedulingTaskAction.parseMakefileDependencies 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":359}}}],"partialFingerprints":{"codehealthFindingId/v1":"02fb5c5521d87531689ad88e91809bfecdb21cd7cd350a486591c8810813f743"}},{"ruleId":"D1","level":"warning","message":{"text":"ValidateProductTaskAction.validateFrameworks (cyclomatic 19): ValidateProductTaskAction.validateFrameworks 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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ffa9f930e97915aa9e479e76f226556bb20548547ad93b76983dd616044da05"}},{"ruleId":"D1","level":"warning","message":{"text":"CommandLineCheckable.checkCommandLineMatches (cyclomatic 19): CommandLineCheckable.checkCommandLineMatches 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":"Sources/SWBTestSupport/TasksCheckingResult.swift"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"2954d178e92818ccd5bc1dbee2900ca39337642a1289ac85a941cb4222548b80"}},{"ruleId":"D1","level":"warning","message":{"text":"Path.matchesFilenamePattern (cyclomatic 19): Path.matchesFilenamePattern 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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":743}}}],"partialFingerprints":{"codehealthFindingId/v1":"2302cce6e2f4a3582a5c9cfb80902065afd803e982b70aa54796c4159ee6f46d"}},{"ruleId":"D1","level":"warning","message":{"text":"SWBBuildServiceConnection.effectiveLaunchURL (cyclomatic 19): SWBBuildServiceConnection.effectiveLaunchURL 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c51bdd2e60fb50e19d354e02f367f7b26fe7ce3540b0c2e02f2cb47a20770d5"}},{"ruleId":"D1","level":"warning","message":{"text":"AppIntentsSSUTrainingCompilerSpec.shouldConstructSsuTrainingTask (cyclomatic 18): AppIntentsSSUTrainingCompilerSpec.shouldConstructSsuTrainingTask 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":"Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2f26f74eded702d26ab37f6a21f8f2c04e726113fb7a049e4907a54fa56e2a6"}},{"ruleId":"D1","level":"warning","message":{"text":"OperationSystemAdaptor.descriptionForBuildKey (cyclomatic 18): OperationSystemAdaptor.descriptionForBuildKey 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2414}}}],"partialFingerprints":{"codehealthFindingId/v1":"09c923fdaa72d455f67e454313c936931aac7450312ce63f5a48a260379d903d"}},{"ruleId":"D1","level":"warning","message":{"text":"RecursiveSearchPathResolver.computeExpandedPaths (cyclomatic 18): RecursiveSearchPathResolver.computeExpandedPaths 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":"Sources/SWBCore/Settings/RecursiveSearchPathResolver.swift"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"5535fef82c243a005b95de0681145eeb7998d5b8cd1644c4442c66cc2ff7a4ea"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskProducerContext.willProduceBinary (cyclomatic 18): TaskProducerContext.willProduceBinary 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb7bba3f23d7f69b40e8b13b67777ff61c811f67e16b7ab5ef95323a08c5c476"}},{"ruleId":"D1","level":"warning","message":{"text":"ClangScanTaskAction.performTaskAction (cyclomatic 18): ClangScanTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"b984035d2643f3b6bcfc91481fa57091ad589c59fff42df6c68b0ffd44f1db08"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.addAdditionalContent (cyclomatic 18): InfoPlistProcessorTaskAction.addAdditionalContent 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c3ede99895cb300f47ee6e9151198250658169d18544344120777de7d87231e"}},{"ruleId":"D1","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.mergeUIRequiredDeviceCapabilities (cyclomatic 18): InfoPlistProcessorTaskAction.mergeUIRequiredDeviceCapabilities 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1267}}}],"partialFingerprints":{"codehealthFindingId/v1":"40ff10cf09319e029c551962b842b456227a2d41dba7480dfd44c6c54488604a"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftDriverJobSchedulingTaskAction.performTaskAction (cyclomatic 18): SwiftDriverJobSchedulingTaskAction.performTaskAction 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"187ced93b88e317fe01e368c9f1e64b7d2d44218675a1b7c7955d3906b0f147b"}},{"ruleId":"D1","level":"warning","message":{"text":"Options.init (cyclomatic 18): Options.init 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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aaee7d593f3d628d37e9b8233da254b3e76a30b18396e87670f086aa3874aea"}},{"ruleId":"D1","level":"warning","message":{"text":"CASOptions.create (cyclomatic 17): CASOptions.create 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":"Sources/SWBCore/Settings/CASOptions.swift"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"834520743b84cdb03ca6d90f0db0c2b64a7199e096e63e165447420a7068f506"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getTargetTaskOverrides (cyclomatic 17): SettingsBuilder.getTargetTaskOverrides 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4914}}}],"partialFingerprints":{"codehealthFindingId/v1":"45db9ddd2797ba5c1883974b6671b51bd6ad59ac675e2e905411a1c74e8322e6"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildRule.init (cyclomatic 17): BuildRule.init 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: FileReference.fileTypeIdentifier (cyclomatic 23) 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 method is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"e59af255df25f0d50dc8167b18d434d9697967dcbfe96ab7a69d436e1b85ba1f"}},{"ruleId":"D1","level":"warning","message":{"text":"GlobalProductPlan.computeArtifactBundleInfo (cyclomatic 17): GlobalProductPlan.computeArtifactBundleInfo 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":585}}}],"partialFingerprints":{"codehealthFindingId/v1":"da3be81c701899394d3d8d514612ce114050923901d323523bff1c670fe8612b"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildRuleTaskProducer.generateTasks (cyclomatic 17): BuildRuleTaskProducer.generateTasks 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f2da8b0818d2f1c9c012834f745de51f9126616cd5df2f0b373e960e60ce292"}},{"ruleId":"D1","level":"warning","message":{"text":"SwiftDriverJobTaskAction.replayCachedCommand (cyclomatic 17): SwiftDriverJobTaskAction.replayCachedCommand 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":606}}}],"partialFingerprints":{"codehealthFindingId/v1":"50eb916d868cc644e38ab14cb8f3b96b125538778b6c23ea0aedba280245b752"}},{"ruleId":"D1","level":"warning","message":{"text":"BuildOperationTester.checkBuild (cyclomatic 17): BuildOperationTester.checkBuild 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. This is NOT this file\u0027s highest cyclomatic complexity: BuildEvent.description (cyclomatic 18) 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 method is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1464}}}],"partialFingerprints":{"codehealthFindingId/v1":"b63235fe97039f0f7b9be53a33c44d3918afcc04eb8eaa8a5dc5aa063effbb9b"}},{"ruleId":"D1","level":"warning","message":{"text":"Scalar.escapedForC (cyclomatic 17): Scalar.escapedForC 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":"Sources/SWBUtil/String.swift"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f18c5e6039a84afbf65dd55673dbe034f3e972ae284a9ac78782dc5b358183f"}},{"ruleId":"D1","level":"warning","message":{"text":"fnmatch.swift.rangematch (cyclomatic 17): fnmatch.swift.rangematch 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":"Sources/SWBUtil/fnmatch.swift"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"83f2839da4aa4f4c0484d76e1110af4b7172beef83f0fba7c3ab6281ceb8c43c"}},{"ruleId":"D1","level":"warning","message":{"text":"OperationSystemAdaptor.commandProcessFinished (cyclomatic 16): OperationSystemAdaptor.commandProcessFinished has cyclomatic complexity 16 (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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2351}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc5061c9d66a9ffa252d4f197c21e47315da701cfc6aca7d372730eb6867e2fa"}},{"ruleId":"D1","level":"warning","message":{"text":"Core.getInitializedCore (cyclomatic 16): Core.getInitializedCore 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":"Sources/SWBCore/Core.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"333e621442ad675fdcb12b85b95790d599890aa03d22cb3219599af26f23d0d6"}},{"ruleId":"D1","level":"warning","message":{"text":"LinkageDependencyResolver.implicitDependency (cyclomatic 16): LinkageDependencyResolver.implicitDependency 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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":380}}}],"partialFingerprints":{"codehealthFindingId/v1":"1133b9c4c0635707834afd16ca55159ab33cef01700af58d33c864dc121e5297"}},{"ruleId":"D1","level":"warning","message":{"text":"SDKVariant.evaluateTargetedDeviceFamilyBuildSetting (cyclomatic 16): SDKVariant.evaluateTargetedDeviceFamilyBuildSetting 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"b37de4a5c85c3b51aee7e3b8a93d1d6dcbd5befbe2fd0f2298112bf4d58cc928"}},{"ruleId":"D1","level":"warning","message":{"text":"SettingsBuilder.getTargetDynamicSettings (cyclomatic 16): SettingsBuilder.getTargetDynamicSettings 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2425}}}],"partialFingerprints":{"codehealthFindingId/v1":"57475d522a3413c405d32de440bdac5a52f680a5d596729e58ff80cce451defc"}},{"ruleId":"D1","level":"warning","message":{"text":"EvalInstr.init (cyclomatic 16): EvalInstr.init 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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b639729e0ca7c4225cdf6bbb18564df0dc7681d242809c154bc867a1ded6e6d"}},{"ruleId":"D1","level":"warning","message":{"text":"MacroValueAssignmentTable.bindConditionParameter (cyclomatic 16): MacroValueAssignmentTable.bindConditionParameter 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":"Sources/SWBMacro/MacroValueAssignmentTable.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"efa95849dc8306bf831bab05112c84e317f8a9c0748f6399318b2774976bc4de"}},{"ruleId":"D1","level":"warning","message":{"text":"GlobalProductPlan.computeTargetsRequiredToBuildForIndexing (cyclomatic 16): GlobalProductPlan.computeTargetsRequiredToBuildForIndexing 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":510}}}],"partialFingerprints":{"codehealthFindingId/v1":"2651faa363cf2363822759068ba4bb7576eb22306e583ef0e0049a3fd619eeb8"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskProducerContext.compileSourcesExportOnlySwiftSymbols (cyclomatic 16): TaskProducerContext.compileSourcesExportOnlySwiftSymbols 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1501}}}],"partialFingerprints":{"codehealthFindingId/v1":"5180406c19e84a18f5160f35a11eccc21be430fd7b719cff199b91b21145b39b"}},{"ruleId":"D1","level":"warning","message":{"text":"ModuleVerifierTaskProducer.generateClangModuleVerifierTask (cyclomatic 16): ModuleVerifierTaskProducer.generateClangModuleVerifierTask 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"42821d1f7c6f789409b64c1eb09f99649af08089ed4e606b24d5b82dffe6b3db"}},{"ruleId":"D1","level":"warning","message":{"text":"ProductPostprocessingTaskProducer.generateTasks (cyclomatic 16): ProductPostprocessingTaskProducer.generateTasks 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"69817744da819213618e6463f71f364ba11b5d610a97b9572e73e73325ccc0a0"}},{"ruleId":"D1","level":"warning","message":{"text":"Options.init (cyclomatic 16): Options.init 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":"Sources/SWBTaskExecution/TaskActions/ClangModuleVerifierInputGeneratorTaskAction.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"44d664434f1fcf6ad238a98a4088f2b8810b91947d6ba5fe4fd2d52d711d59a1"}},{"ruleId":"D1","level":"warning","message":{"text":"Options.init (cyclomatic 16): Options.init 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":"Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"1152cca03cd9a330cc33b11b6873f3cb659b7ad7c58bed0cece9eff975d08915"}},{"ruleId":"D1","level":"warning","message":{"text":"Options.init (cyclomatic 16): Options.init 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":"Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"e46bb358a840ff1ac5b48e48589fb77ecd7143e301dc90c3873f938429642d82"}},{"ruleId":"D1","level":"warning","message":{"text":"AsyncOperationQueue.waitIfNeeded (cyclomatic 16): AsyncOperationQueue.waitIfNeeded 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":"Sources/SWBUtil/AsyncOperationQueue.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ed34992d6b3a54ae4fc4d4b119ef03f82510c058c3861c0abc6648fc2475a98"}},{"ruleId":"D1","level":"warning","message":{"text":"PbxCp.swift.copyDirectory (cyclomatic 16): PbxCp.swift.copyDirectory 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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":421}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e884833af34ec7a63c19cca544e2149f073658f62a4bdb7e963d99cf50f9167"}},{"ruleId":"D1","level":"warning","message":{"text":"PbxCp.swift.copyTree (cyclomatic 16): PbxCp.swift.copyTree 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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"69038d0199a8251c400317d5e2b86b67371f5f9c7f2fbff1a986e93880e1f73f"}},{"ruleId":"D2","level":"warning","message":{"text":"SourcesTaskProducer.generateTasks (cognitive 439): SourcesTaskProducer.generateTasks has cognitive complexity 439 (threshold 15). Drivers by points: if/else 100 (306 pts), boolean chains 47, loops 12 (42 pts), ternaries 9 (25 pts), match/switch 2 (12 pts), error handling 2 (7 pts) (nesting depth added 267). 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":840}}}],"partialFingerprints":{"codehealthFindingId/v1":"171531286ac60db25102fea3af60b28a764213b05c1af70cef0a4e1f076b10ea"}},{"ruleId":"D2","level":"warning","message":{"text":"SourcesTaskProducer.computeLibraries (cognitive 297): SourcesTaskProducer.computeLibraries has cognitive complexity 297 (threshold 15). Drivers by points: if/else 60 (182 pts), loops 9 (44 pts), ternaries 7 (24 pts), match/switch 7 (20 pts), error handling 5 (19 pts), boolean chains 8 (nesting depth added 201). 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"9757866bb60960355ebaf2f890c1a6bf0fcd00fdf6e1b6d8a0112dfe82afb6aa"}},{"ruleId":"D2","level":"warning","message":{"text":"TargetDependencyResolver.computeGraph (cognitive 232): TargetDependencyResolver.computeGraph has cognitive complexity 232 (threshold 15). Drivers by points: if/else 50 (138 pts), loops 27 (71 pts), match/switch 4 (11 pts), boolean chains 9, ternaries 1 (3 pts) (nesting depth added 141). 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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e0f6b235ff2b7fc6c3c8e2ced1435aac02c58136a4a3cdb4d3b37d99aabfa8a"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getCommonTargetTaskOverrides (cognitive 190): SettingsBuilder.getCommonTargetTaskOverrides has cognitive complexity 190 (threshold 15). Drivers by points: if/else 64 (138 pts), loops 10 (28 pts), boolean chains 13, ternaries 4 (7 pts), error handling 2 (3 pts), match/switch 1 (nesting depth added 96). 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4374}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5572d797b5b1c3661c78f8b5336c7d97f6fe304ee426d86ecc743c8edb0149e"}},{"ruleId":"D2","level":"warning","message":{"text":"CopyFilesTaskProducer.addTasksForUngroupedFile (cognitive 190): CopyFilesTaskProducer.addTasksForUngroupedFile has cognitive complexity 190 (threshold 15). Drivers by points: if/else 54 (128 pts), boolean chains 20, match/switch 6 (19 pts), loops 3 (17 pts), error handling 1 (3 pts), ternaries 2 (3 pts) (nesting depth added 104). 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"d691ca4eafe8461da126b4927122fa9ca2484d86416211567942442cfcb3153d"}},{"ruleId":"D2","level":"warning","message":{"text":"FilesBasedBuildPhaseTaskProducerBase.groupAndAddTasksForFiles (cognitive 170): FilesBasedBuildPhaseTaskProducerBase.groupAndAddTasksForFiles has cognitive complexity 170 (threshold 15). Drivers by points: if/else 43 (119 pts), loops 9 (22 pts), boolean chains 14, error handling 4 (8 pts), match/switch 2 (7 pts) (nesting depth added 98). 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a08b8136fb7e301e7284c51035d001c6922a1e790abfa3543099209f4257409"}},{"ruleId":"D2","level":"warning","message":{"text":"SDKRegistry.registerSDK (cognitive 152): SDKRegistry.registerSDK has cognitive complexity 152 (threshold 15). Drivers by points: if/else 53 (105 pts), loops 13 (26 pts), error handling 7 (14 pts), boolean chains 4, ternaries 1 (3 pts) (nesting depth added 74). 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6f44fe1287d9d34316c7f32d324a2978ac135092f4de9719c8eaa3451d711fd"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescription.construct (cognitive 128): BuildDescription.construct has cognitive complexity 128 (threshold 15). Drivers by points: if/else 30 (64 pts), loops 21 (35 pts), ternaries 8 (17 pts), match/switch 2 (6 pts), boolean chains 4, error handling 1 (2 pts) (nesting depth added 62). 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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1133}}}],"partialFingerprints":{"codehealthFindingId/v1":"34302e8e5c43daff8cc37f2dc58d56c69db9c815e73200e9944a01b1953b8ae8"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.analyzeSettings (cognitive 116): SettingsBuilder.analyzeSettings has cognitive complexity 116 (threshold 15). Drivers by points: if/else 30 (61 pts), ternaries 10 (28 pts), loops 11 (20 pts), boolean chains 7 (nesting depth added 58). 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5705}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe6035cdd0172ea694af4eae3cb5fa01d6cf76c6287d621259e83fbded524bd4"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.construct (cognitive 112): SettingsBuilder.construct has cognitive complexity 112 (threshold 15). Drivers by points: if/else 34 (64 pts), loops 8 (23 pts), boolean chains 11, match/switch 2 (6 pts), error handling 2 (5 pts), ternaries 2 (3 pts) (nesting depth added 53). 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1462}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f64ee95f5d3342084ca3017825df6bc590891d5958ae91c57e3337201e55321"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildOperation._build (cognitive 101): BuildOperation._build has cognitive complexity 101 (threshold 15). Drivers by points: if/else 28 (48 pts), loops 7 (21 pts), error handling 6 (16 pts), boolean chains 8, ternaries 2 (6 pts), match/switch 2 (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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":535}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c33c68cfce0db9b1b8caad8b48d82482cd5728805d05b3397af21bedc44c4cf"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyResolver.lookupConfiguredTarget (cognitive 99): DependencyResolver.lookupConfiguredTarget has cognitive complexity 99 (threshold 15). Drivers by points: if/else 41 (64 pts), ternaries 4 (13 pts), boolean chains 12, match/switch 2 (8 pts), loops 1 (2 pts) (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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":792}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3bd4ffc59dd4e13c047a131fc63df0f964b94fc4ed92bc17d04c6e173a8ba4d"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.parseConfiguration (cognitive 90): InfoPlistProcessorTaskAction.parseConfiguration has cognitive complexity 90 (threshold 15). Drivers by points: if/else 38 (86 pts), match/switch 1 (2 pts), boolean chains 1, loops 1 (nesting depth added 49). 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":378}}}],"partialFingerprints":{"codehealthFindingId/v1":"05aa05fdb80cfce6a8e7c783ee8ab2e533f597530cc04a67d0e9772a4f4b2c55"}},{"ruleId":"D2","level":"warning","message":{"text":"ActoolCompilerSpec.constructTasks (cognitive 89): ActoolCompilerSpec.constructTasks has cognitive complexity 89 (threshold 15). Drivers by points: if/else 31 (53 pts), ternaries 6 (15 pts), loops 3 (10 pts), boolean chains 8, match/switch 3 (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":"Sources/SWBApplePlatform/AssetCatalogCompiler.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"06bfcb0c620dd2b96ae2064931fb3a195451fa35faf83780c216ef7385e761a3"}},{"ruleId":"D2","level":"warning","message":{"text":"LinkageDependencyResolver.dependencies (cognitive 87): LinkageDependencyResolver.dependencies has cognitive complexity 87 (threshold 15). Drivers by points: if/else 25 (65 pts), boolean chains 10, loops 4 (10 pts), match/switch 1 (2 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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd6c0853ce1c7a55d1cf43f650329b9d545251aeae129df9676d2671ef2f66f7"}},{"ruleId":"D2","level":"warning","message":{"text":"fnmatch.swift.fnmatch (cognitive 86): fnmatch.swift.fnmatch has cognitive complexity 86 (threshold 15). Drivers by points: if/else 24 (68 pts), boolean chains 9, match/switch 2 (5 pts), loops 2 (4 pts) (nesting depth added 49). 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":"Sources/SWBUtil/fnmatch.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"93fc592ecbdbef2a8f0f845c23673f3b361b05cd496a5b86109c82e7d4b079da"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftPackageCopyFilesTaskProducer.buildFilesForPackages (cognitive 83): SwiftPackageCopyFilesTaskProducer.buildFilesForPackages has cognitive complexity 83 (threshold 15). Drivers by points: if/else 27 (55 pts), boolean chains 13, match/switch 3 (6 pts), loops 3 (5 pts), error handling 2 (3 pts), ternaries 1 (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SwiftPackageCopyFilesTaskProducer.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"4805416ca92b69a90ff6df0d0bd8c605023c6422ad5c2cdd27f2f7b1fe5c9e1a"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getBuildPhaseTargetTaskOverrides (cognitive 82): SettingsBuilder.getBuildPhaseTargetTaskOverrides has cognitive complexity 82 (threshold 15). Drivers by points: if/else 26 (50 pts), loops 9 (19 pts), boolean chains 8, ternaries 2 (5 pts) (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5071}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9a55d827c5bd73bea124e4f67f475fec0dc70107fe9eece59b57549df3977ed"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.performTaskAction (cognitive 82): InfoPlistProcessorTaskAction.performTaskAction has cognitive complexity 82 (threshold 15). Drivers by points: if/else 35 (52 pts), error handling 9 (13 pts), boolean chains 10, ternaries 2 (5 pts), loops 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ca73ad8206e2268d5678171ab17e05766123756f9f2c49de7a9a0ada65d4591"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.computeBoundProperties (cognitive 79): SettingsBuilder.computeBoundProperties has cognitive complexity 79 (threshold 15). Drivers by points: if/else 35 (60 pts), boolean chains 8, loops 4 (5 pts), error handling 2 (4 pts), match/switch 1 (2 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1786}}}],"partialFingerprints":{"codehealthFindingId/v1":"89f45975537937229dc3083e25c05e3f31b90c05177abfcb3b889f7d34f78e22"}},{"ruleId":"D2","level":"warning","message":{"text":"LegacySwiftCommandOutputParser.handleMessage (cognitive 76): LegacySwiftCommandOutputParser.handleMessage has cognitive complexity 76 (threshold 15). Drivers by points: if/else 30 (55 pts), boolean chains 8, loops 2 (5 pts), match/switch 2 (4 pts), ternaries 2 (4 pts) (nesting depth added 32). 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":"Sources/SWBCore/SwiftOutputParsing.swift"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d376fa6e7e093d3f590f34ded41823629bb9b0f2f39d9ec8f4a474b4e3f593b"}},{"ruleId":"D2","level":"warning","message":{"text":"Toolchain.init (cognitive 75): Toolchain.init has cognitive complexity 75 (threshold 15). Drivers by points: if/else 38 (62 pts), loops 4 (7 pts), boolean chains 3, error handling 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":"Sources/SWBCore/ToolchainRegistry.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad0ae40614c858f2d41efb8b4e683674101b4da70969c94312e3a542611051c7"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyCycleFormatter.formattedMultiTargetCycleOutput (cognitive 70): DependencyCycleFormatter.formattedMultiTargetCycleOutput has cognitive complexity 70 (threshold 15). Drivers by points: if/else 18 (43 pts), ternaries 2 (14 pts), boolean chains 6, match/switch 1 (6 pts), loops 1 (nesting depth added 42). 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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e3f87cddf1271f97722a32e5587caa3ae42a2a148d2e7b23553801787c941ba"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskProducerContext.forEachBuildProductToSourceMapping (cognitive 70): TaskProducerContext.forEachBuildProductToSourceMapping has cognitive complexity 70 (threshold 15). Drivers by points: if/else 17 (54 pts), ternaries 2 (9 pts), loops 4 (6 pts), boolean chains 1 (nesting depth added 46). 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd767020375c272f14df6cae69534e02a3c0aa5fa33091446cc95111f71a178f"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.validatePlistContents (cognitive 67): InfoPlistProcessorTaskAction.validatePlistContents has cognitive complexity 67 (threshold 15). Drivers by points: if/else 22 (52 pts), loops 3 (6 pts), match/switch 2 (5 pts), boolean chains 4 (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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1397}}}],"partialFingerprints":{"codehealthFindingId/v1":"5857c02d6f326df29fe02a0ca8283b9ea38ccd5d91997a388e817c9fd20cb89b"}},{"ruleId":"D2","level":"warning","message":{"text":"TargetOrderTaskProducer.inputsForDependencies (cognitive 66): TargetOrderTaskProducer.inputsForDependencies has cognitive complexity 66 (threshold 15). Drivers by points: if/else 14 (51 pts), loops 3 (11 pts), boolean chains 4 (nesting depth added 45). 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"71bbcd8bc0a626ca51bff7637feb2bc82b7140c9f7874f0ee702a13915539c8a"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFramework.createXCFramework (cognitive 63): XCFramework.createXCFramework has cognitive complexity 63 (threshold 15). Drivers by points: if/else 11 (32 pts), loops 6 (19 pts), match/switch 2 (5 pts), ternaries 1 (3 pts), boolean chains 2, error handling 2 (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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1115}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d6e1a88255f898766ed113dea9460c567c0bed439bcf8839b45d2dfb3aae7c3"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.checkForDiamondProblemsInPackageProductLinkage (cognitive 62): GlobalProductPlan.checkForDiamondProblemsInPackageProductLinkage has cognitive complexity 62 (threshold 15). Drivers by points: if/else 22 (46 pts), loops 9 (11 pts), boolean chains 5 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1108}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb53f8203b43d868e7824f684b26d596900ad012a4adeeb624b100bdcaf283fc"}},{"ruleId":"D2","level":"warning","message":{"text":"ModuleMapTaskProducer.generateTasks (cognitive 62): ModuleMapTaskProducer.generateTasks has cognitive complexity 62 (threshold 15). Drivers by points: if/else 28 (51 pts), error handling 3 (6 pts), boolean chains 5 (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5699dd8a47207de7a639e8b3572edb5b20559589aaf2c9410ad30d3decfb9ae"}},{"ruleId":"D2","level":"warning","message":{"text":"ClangCompileTaskAction.performTaskAction (cognitive 62): ClangCompileTaskAction.performTaskAction has cognitive complexity 62 (threshold 15). Drivers by points: if/else 17 (43 pts), error handling 3 (7 pts), boolean chains 5, loops 2 (4 pts), match/switch 1 (3 pts) (nesting depth added 34). 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":"Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aa27028ea87149a9a80520ebe3f5657aa404d49bab13fc8caf7183ea21a340f"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftDriverTaskAction.performTaskAction (cognitive 60): SwiftDriverTaskAction.performTaskAction has cognitive complexity 60 (threshold 15). Drivers by points: if/else 17 (37 pts), loops 5 (16 pts), boolean chains 3, ternaries 1 (3 pts), error handling 1 (nesting depth added 33). 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a4198ee2309f51fb0e1d6be62132a041737bea968f90019ecc147a56bc2b0a0"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyCycleFormatter.formattedSingleTargetCycleOutput (cognitive 58): DependencyCycleFormatter.formattedSingleTargetCycleOutput has cognitive complexity 58 (threshold 15). Drivers by points: if/else 16 (36 pts), ternaries 2 (8 pts), match/switch 3 (7 pts), boolean chains 4, loops 2 (3 pts) (nesting depth added 31). 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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfecc3f074ab686edd59515455a265fe7c4a9c70f0011b20eaad59984a4a4814"}},{"ruleId":"D2","level":"warning","message":{"text":"ExecutableTask.formattedRuleInfo (cognitive 57): ExecutableTask.formattedRuleInfo has cognitive complexity 57 (threshold 15). Drivers by points: if/else 27 (51 pts), match/switch 2 (5 pts), boolean chains 1 (nesting depth added 27). 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":"Sources/SWBCore/ExecutableTask.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"365546e521a480fd90b9f26c89be401878ba035a8b3ef02d9af65b377a2e8d7c"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.addSDKSettings (cognitive 56): SettingsBuilder.addSDKSettings has cognitive complexity 56 (threshold 15). Drivers by points: if/else 25 (47 pts), loops 3, boolean chains 2, error handling 1 (2 pts), ternaries 1 (2 pts) (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2725}}}],"partialFingerprints":{"codehealthFindingId/v1":"690d10bdd23154f0d0236a66d19743c3875592083c5a570f7e578cfada9942b9"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeIPIClangInfo (cognitive 56): GlobalProductPlan.computeIPIClangInfo has cognitive complexity 56 (threshold 15). Drivers by points: if/else 14 (36 pts), loops 6 (11 pts), boolean chains 5, ternaries 2 (4 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bbe775c3a4e1c57e521424779eecd2bfff2d2647171f6828364fd0a607bcfaf"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroConfigFileLoader.loadSettingsFromConfig (cognitive 55): MacroConfigFileLoader.loadSettingsFromConfig has cognitive complexity 55 (threshold 15). Drivers by points: if/else 22 (46 pts), loops 2 (4 pts), match/switch 2 (3 pts), boolean chains 1, ternaries 1 (nesting depth added 27). 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":"Sources/SWBCore/MacroConfigFileLoader.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a10ac2f5fb08743975cd3ef0f4997dd9dc5cd73b8bd0644aa2ac3ec10694ae1"}},{"ruleId":"D2","level":"warning","message":{"text":"GenericCachingTaskAction.performTaskAction (cognitive 55): GenericCachingTaskAction.performTaskAction has cognitive complexity 55 (threshold 15). Drivers by points: if/else 14 (30 pts), loops 7 (17 pts), error handling 3 (4 pts), match/switch 1 (2 pts), ternaries 1 (2 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":"Sources/SWBTaskExecution/TaskActions/GenericCachingTaskAction.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"18f0de8b27ce656ff3a2de72c5cf4061650b44646561ecb6437d88523995d368"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftDriverJobTaskAction.performTaskAction (cognitive 54): SwiftDriverJobTaskAction.performTaskAction has cognitive complexity 54 (threshold 15). Drivers by points: if/else 21 (36 pts), boolean chains 8, error handling 4 (7 pts), loops 1 (2 pts), match/switch 1 (nesting depth added 19). 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb95ad83fcede933edac02ed24abea57df82fbece81587b23228f2aa4cc7b872"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroEvaluationProgram.executeInContext (cognitive 53): MacroEvaluationProgram.executeInContext has cognitive complexity 53 (threshold 15). Drivers by points: if/else 15 (42 pts), match/switch 3 (8 pts), boolean chains 2, loops 1 (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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":372}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c4f4dc9b3ed8514a3003c8fa35e0a92206320079f2ada638182e089d9fe54fb"}},{"ruleId":"D2","level":"warning","message":{"text":"XCTestProductPostprocessingTaskProducer.generateXCTRunnerTasks (cognitive 52): XCTestProductPostprocessingTaskProducer.generateXCTRunnerTasks has cognitive complexity 52 (threshold 15). Drivers by points: if/else 14 (31 pts), loops 4 (7 pts), match/switch 2 (7 pts), error handling 2 (5 pts), boolean chains 1, ternaries 1 (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/XCTestProductTypeTaskProducer.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d597ac28f4dc07755b34c04825183ed0f216e9b9698bf4c72baa076030be696"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.editPlatformSpecificEntries (cognitive 52): InfoPlistProcessorTaskAction.editPlatformSpecificEntries has cognitive complexity 52 (threshold 15). Drivers by points: if/else 16 (42 pts), match/switch 2 (5 pts), loops 3 (4 pts), boolean chains 1 (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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1111}}}],"partialFingerprints":{"codehealthFindingId/v1":"67e8aa893e40258966d5e5505c75f0b59ef8e5601045001b11a09b6df6059109"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftDriverJobSchedulingTaskAction.parseMakefileDependencies (cognitive 52): SwiftDriverJobSchedulingTaskAction.parseMakefileDependencies has cognitive complexity 52 (threshold 15). Drivers by points: if/else 16 (42 pts), loops 2 (5 pts), match/switch 1 (3 pts), boolean chains 2 (nesting depth added 31). 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":359}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c92f117b150ea3c986df934680f267427a5a9d1dbf3cf54f685a8a97ce30bd"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getSDKSpecificPathOverrides (cognitive 51): SettingsBuilder.getSDKSpecificPathOverrides has cognitive complexity 51 (threshold 15). Drivers by points: if/else 18 (38 pts), loops 5 (12 pts), boolean chains 1 (nesting depth added 27). 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5401}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3461a72c64e603658361e598c7d8f338262db865741657e48aace139f8b9b8c"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroExpressionParser.parseQuotedExpressionStringElement (cognitive 51): MacroExpressionParser.parseQuotedExpressionStringElement has cognitive complexity 51 (threshold 15). Drivers by points: if/else 18 (33 pts), boolean chains 9, ternaries 2 (8 pts), loops 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":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"4548597d8b2be3c8c2d1baecdf7157cf2d57ddc2fb855fa175a3fee72d4174f4"}},{"ruleId":"D2","level":"warning","message":{"text":"CopyPlistTaskAction.performTaskAction (cognitive 51): CopyPlistTaskAction.performTaskAction has cognitive complexity 51 (threshold 15). Drivers by points: error handling 5 (15 pts), if/else 7 (15 pts), loops 3 (10 pts), ternaries 1 (5 pts), boolean chains 3, match/switch 1 (3 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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":210}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8926c261f6a13b7d4a87b01f2c5a66d70bff2ba30f0e1cb85620f7667891037"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.addRunDestinationSettingsPlatformSDK (cognitive 50): SettingsBuilder.addRunDestinationSettingsPlatformSDK has cognitive complexity 50 (threshold 15). Drivers by points: if/else 25 (34 pts), boolean chains 12, error handling 3, match/switch 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3794}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bd248b0d149b9feecd8abf5224fdbe5fabcec29633931712cfc3ec7339ec8a4"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.bindDeploymentTarget (cognitive 50): SettingsBuilder.bindDeploymentTarget has cognitive complexity 50 (threshold 15). Drivers by points: if/else 23 (43 pts), boolean chains 5, ternaries 1 (2 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5552}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b5cc815b86caba51abbba873318b039a9fc227818eb2e2a5e28178c3b8203e8"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.addSwiftSDKToolsetSettings (cognitive 48): SettingsBuilder.addSwiftSDKToolsetSettings has cognitive complexity 48 (threshold 15). Drivers by points: if/else 11 (31 pts), boolean chains 5, loops 2 (5 pts), match/switch 1 (5 pts), error handling 1 (2 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2946}}}],"partialFingerprints":{"codehealthFindingId/v1":"9920d8aaf31e713fb86519e0b0d6c194185fe617401ec5c8c1734be2f9c7457a"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroExpressionParser.parseSubstitutionSubexpression (cognitive 48): MacroExpressionParser.parseSubstitutionSubexpression has cognitive complexity 48 (threshold 15). Drivers by points: if/else 20 (37 pts), boolean chains 7, loops 2 (4 pts) (nesting depth added 19). 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":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"3328484262690b195d470b6469d5414b7c63bb8f8eabdeb288f2da6d1375dd74"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeArtifactBundleInfo (cognitive 48): GlobalProductPlan.computeArtifactBundleInfo has cognitive complexity 48 (threshold 15). Drivers by points: if/else 10 (29 pts), loops 4 (10 pts), error handling 2 (8 pts), boolean chains 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":585}}}],"partialFingerprints":{"codehealthFindingId/v1":"46ee0cda0465db173f55d9da60bee65b36ba4bc0ddbf5b575d693f1533fe3584"}},{"ruleId":"D2","level":"warning","message":{"text":"CompilationCachingConfigFileTaskProducer.generateTasks (cognitive 48): CompilationCachingConfigFileTaskProducer.generateTasks has cognitive complexity 48 (threshold 15). Drivers by points: if/else 15 (38 pts), loops 2 (6 pts), boolean chains 3, error handling 1 (nesting depth added 27). 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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/CompilationCachingConfigFileTaskProducer.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e42b8ace771477d753d5cadce3118b4217827b924b1139ef7ed53d173175c7f"}},{"ruleId":"D2","level":"warning","message":{"text":"Path.join (cognitive 47): Path.join has cognitive complexity 47 (threshold 15). Drivers by points: if/else 14 (23 pts), boolean chains 11, ternaries 4 (10 pts), match/switch 1 (3 pts) (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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd3d7d7cb8d2460c9fb684302fc0b3490335e63a6327ddd1daa2591da3d05620"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBServiceConsoleBuildCommand.perform (cognitive 47): SWBServiceConsoleBuildCommand.perform has cognitive complexity 47 (threshold 15). Drivers by points: if/else 17 (34 pts), error handling 6 (8 pts), boolean chains 2, match/switch 1 (2 pts), 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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"87c5b032883949bfecd00d48898fba9f59cc48d45eaf0d5754da76575e80d915"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.generatesModuleMap (cognitive 46): GlobalProductPlan.generatesModuleMap has cognitive complexity 46 (threshold 15). Drivers by points: if/else 17 (33 pts), match/switch 3 (7 pts), boolean chains 6 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1559}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4084d31ffa5bcefe47a686690cfbaf443d057a67ee49745ded6ff07d3f99e47"}},{"ruleId":"D2","level":"warning","message":{"text":"PlatformRegistry.registerPlatform (cognitive 45): PlatformRegistry.registerPlatform has cognitive complexity 45 (threshold 15). Drivers by points: if/else 29 (37 pts), boolean chains 3, error handling 1 (2 pts), match/switch 1 (2 pts), loops 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":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":441}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5fe3e6443166f6d7aec883c1194569a1405a3ca8d5add2c7d79f4c64cc5050e"}},{"ruleId":"D2","level":"warning","message":{"text":"PrecompileClangModuleTaskAction.performTaskAction (cognitive 45): PrecompileClangModuleTaskAction.performTaskAction has cognitive complexity 45 (threshold 15). Drivers by points: if/else 15 (33 pts), error handling 3 (6 pts), boolean chains 4, loops 2 (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":"Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"9863dcbe0f7c5b36842f9c706a49f3aca1af94ee6541e61ccdf55492915a7590"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.analyzeExcludedLocalizationFiles (cognitive 44): SettingsBuilder.analyzeExcludedLocalizationFiles has cognitive complexity 44 (threshold 15). Drivers by points: if/else 13 (28 pts), loops 5 (9 pts), boolean chains 4, match/switch 1 (3 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":6001}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad4b75de936a16bd616bf9284330ac11ac7f75dc0f1fe88b8c2528fbcafa4a4"}},{"ruleId":"D2","level":"warning","message":{"text":"CoreMLCompilerSpec.constructCoreMLCodeGenerationTasks (cognitive 43): CoreMLCompilerSpec.constructCoreMLCodeGenerationTasks has cognitive complexity 43 (threshold 15). Drivers by points: if/else 17 (26 pts), match/switch 4 (9 pts), boolean chains 4, loops 2, error handling 1, ternaries 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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"d600e095f8b0a252e0c64fb14d2ded6f236a80ef5bb5a18b18a10034a461f4ce"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFramework.validate (cognitive 43): XCFramework.validate has cognitive complexity 43 (threshold 15). Drivers by points: if/else 18 (37 pts), match/switch 1 (3 pts), boolean chains 2, loops 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":427}}}],"partialFingerprints":{"codehealthFindingId/v1":"87999111967e3748287ccdea2f012117bff6f3c1e6870ef6f91b0e1e948151ab"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.computeSigningSettings (cognitive 43): SettingsBuilder.computeSigningSettings has cognitive complexity 43 (threshold 15). Drivers by points: if/else 23 (31 pts), boolean chains 9, ternaries 1 (2 pts), match/switch 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3982}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1d77284edeea7aee80a69a374452624760a54439671f27ce15d22e36ab6c44f"}},{"ruleId":"D2","level":"warning","message":{"text":"CopyStringsFileTaskAction.performTaskAction (cognitive 43): CopyStringsFileTaskAction.performTaskAction has cognitive complexity 43 (threshold 15). Drivers by points: if/else 13 (26 pts), error handling 4 (11 pts), boolean chains 3, match/switch 1 (2 pts), loops 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":"Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff9cda8518cd631b5bd59e29bfa5e5db8c9ea6e1e9c3d9032a16e9e9febffb24"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftDriverJobSchedulingTaskAction.taskDependencyReady (cognitive 43): SwiftDriverJobSchedulingTaskAction.taskDependencyReady has cognitive complexity 43 (threshold 15). Drivers by points: if/else 18 (36 pts), error handling 2 (4 pts), boolean chains 2, 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e47bf2e751d5b156eaa9fda786214b7a240c1380210e319a43ddfc0ee607d6e"}},{"ruleId":"D2","level":"warning","message":{"text":"AppIntentsMetadataCompilerSpec.constructTasks (cognitive 42): AppIntentsMetadataCompilerSpec.constructTasks has cognitive complexity 42 (threshold 15). Drivers by points: if/else 13 (23 pts), boolean chains 9, ternaries 3 (5 pts), loops 3 (4 pts), match/switch 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":"Sources/SWBApplePlatform/AppIntentsMetadataCompiler.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"da8f5b5e83f00a394fde62be6099c50898e1b11cb53447226aa6c74a2b875ba4"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeModuleInfo (cognitive 42): GlobalProductPlan.computeModuleInfo has cognitive complexity 42 (threshold 15). Drivers by points: if/else 20 (26 pts), boolean chains 15, ternaries 1 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1429}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a3cc24eef65c8b15096df969d6d6c8baa624f28409651553a07303cae9a43ea"}},{"ruleId":"D2","level":"warning","message":{"text":"TAPISymbolExtractorTaskProducer.computeHeadersInputList (cognitive 42): TAPISymbolExtractorTaskProducer.computeHeadersInputList has cognitive complexity 42 (threshold 15). Drivers by points: if/else 17 (24 pts), ternaries 4 (8 pts), loops 3 (6 pts), boolean chains 3, 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b8e840d5491aea23c2169914cd92e5407582b6d370a9f952c4d43bf17be6b83"}},{"ruleId":"D2","level":"warning","message":{"text":"RunningTask.init (cognitive 42): RunningTask.init has cognitive complexity 42 (threshold 15). Drivers by points: if/else 19 (31 pts), boolean chains 6, loops 2, match/switch 1 (2 pts), ternaries 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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"df1cb98bec512f3ad07e25b4f4147f93aac42ff5b2c3d11d44db2da9b7ae66fd"}},{"ruleId":"D2","level":"warning","message":{"text":"PlanningOperation.getProvisioningTaskInputs (cognitive 41): PlanningOperation.getProvisioningTaskInputs has cognitive complexity 41 (threshold 15). Drivers by points: if/else 22 (36 pts), boolean chains 3, match/switch 1 (2 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":"Sources/SWBBuildService/PlanningOperation.swift"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"60d4621a0ba96e23e4ea1107d8d76f6f5504d45db0a58c6aecdddfcf7dde5d43"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.addPlatformSettings (cognitive 41): SettingsBuilder.addPlatformSettings has cognitive complexity 41 (threshold 15). Drivers by points: if/else 18 (31 pts), loops 3 (4 pts), boolean chains 3, ternaries 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2542}}}],"partialFingerprints":{"codehealthFindingId/v1":"c05ef90e3cd7ee14266ca2bcd90c106d00b2fb4526929a649c893fb7373daa57"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getProductSpecificTargetTaskOverrides (cognitive 41): SettingsBuilder.getProductSpecificTargetTaskOverrides has cognitive complexity 41 (threshold 15). Drivers by points: if/else 11 (23 pts), boolean chains 6, loops 3 (5 pts), match/switch 1 (4 pts), ternaries 1 (3 pts) (nesting depth added 19). 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5306}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0eee180b681d7039e67cdbe003232547dfc82d4be16014f2623ceae901132df"}},{"ruleId":"D2","level":"warning","message":{"text":"PbxCp.swift.pbxcp (cognitive 41): PbxCp.swift.pbxcp has cognitive complexity 41 (threshold 15). Drivers by points: if/else 17 (37 pts), boolean chains 2, error handling 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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":670}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd5fe6200384d7a5a41060725a4eb928b1f188b717649a468a58a1ff7402ce1b"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBBuildServiceConnection.effectiveLaunchURL (cognitive 41): SWBBuildServiceConnection.effectiveLaunchURL has cognitive complexity 41 (threshold 15). Drivers by points: if/else 12 (31 pts), boolean chains 4, loops 1 (2 pts), match/switch 1 (2 pts), ternaries 1 (2 pts) (nesting depth added 22). 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"f813c149be0ebdc6c44eed9b5c9ff6c9bad636885445189300fa464e15f01e5d"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildRule.init (cognitive 40): BuildRule.init has cognitive complexity 40 (threshold 15). Drivers by points: if/else 19 (36 pts), match/switch 1 (3 pts), boolean chains 1 (nesting depth added 19). 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":"Sources/SWBCore/ProjectModel/BuildRule.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"7480c5aced1cbc0c3f05c753724d1fd469a311b756baf260f1aff48ab7c81376"}},{"ruleId":"D2","level":"warning","message":{"text":"ScannerState.getNextToken (cognitive 40): ScannerState.getNextToken has cognitive complexity 40 (threshold 15). Drivers by points: if/else 17 (25 pts), boolean chains 10, loops 2 (4 pts), match/switch 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":"Sources/SWBMacro/MacroConditionExpression.swift"},"region":{"startLine":607}}}],"partialFingerprints":{"codehealthFindingId/v1":"da9200c6fd821e3526b7ad15f293ab9cce2f421d32eaaf94dc02358883b883f3"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFrameworkTaskProducer.prepare (cognitive 40): XCFrameworkTaskProducer.prepare has cognitive complexity 40 (threshold 15). Drivers by points: if/else 13 (25 pts), loops 4 (6 pts), boolean chains 5, error handling 1 (3 pts), match/switch 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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/XCFrameworkTaskProducer.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa87ca4fceec6d87bc8f995552c25bee1b0acc24b54f3982e292111b9ff56609"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.mergeUIDeviceFamilyContent (cognitive 40): InfoPlistProcessorTaskAction.mergeUIDeviceFamilyContent has cognitive complexity 40 (threshold 15). Drivers by points: if/else 9 (25 pts), ternaries 2 (11 pts), boolean chains 2, loops 1 (2 pts) (nesting depth added 26). 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1064}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce6b56d177e34bc6dcf571c856db1b41b21a59481f434cae6cb591499cfdd918"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.mergeUIRequiredDeviceCapabilities (cognitive 40): InfoPlistProcessorTaskAction.mergeUIRequiredDeviceCapabilities has cognitive complexity 40 (threshold 15). Drivers by points: if/else 12 (26 pts), loops 3 (9 pts), boolean chains 3, match/switch 1 (2 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1267}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c4021438afaf02971c97f227a816cc7597f279a7c24ac80f20c1bdc63967c60"}},{"ruleId":"D2","level":"warning","message":{"text":"IbtoolCompilerSupport.stringsFilesAndRegions (cognitive 39): IbtoolCompilerSupport.stringsFilesAndRegions has cognitive complexity 39 (threshold 15). Drivers by points: if/else 6 (29 pts), boolean chains 5, loops 2 (5 pts) (nesting depth added 26). 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":"Sources/SWBApplePlatform/InterfaceBuilderShared.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"3710d1c0c3a16f409704fc5df6e8f215bbe91b9308c5d99ddb441f3099df516b"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFramework.parseCommandLine (cognitive 39): XCFramework.parseCommandLine has cognitive complexity 39 (threshold 15). Drivers by points: if/else 14 (25 pts), match/switch 5 (10 pts), boolean chains 3, 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":843}}}],"partialFingerprints":{"codehealthFindingId/v1":"c12d96818c0e0c69eba2dfd78ddfbf5009f64686305a5e309d8ee3d979c845f8"}},{"ruleId":"D2","level":"warning","message":{"text":"ProcessXCFrameworkTaskAction.performTaskAction (cognitive 39): ProcessXCFrameworkTaskAction.performTaskAction has cognitive complexity 39 (threshold 15). Drivers by points: if/else 15 (31 pts), ternaries 1 (3 pts), match/switch 1 (2 pts), boolean chains 1, error handling 1, loops 1 (nesting depth added 19). 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":"Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"429766dced9050c210fd25a31c38645e32180accd9b2175c53f8ad79e1cbf2ce"}},{"ruleId":"D2","level":"warning","message":{"text":"PlanningResults.checkAllTasksForMissingInputs (cognitive 39): PlanningResults.checkAllTasksForMissingInputs has cognitive complexity 39 (threshold 15). Drivers by points: if/else 8 (27 pts), loops 4 (10 pts), boolean chains 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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":407}}}],"partialFingerprints":{"codehealthFindingId/v1":"b37455db25c8dc5abea242145ee3593695db0b40eb0d82febf10867cf6139d7c"}},{"ruleId":"D2","level":"warning","message":{"text":"AppIntentsMetadataTaskProducer.generateTasks (cognitive 38): AppIntentsMetadataTaskProducer.generateTasks has cognitive complexity 38 (threshold 15). Drivers by points: if/else 15 (22 pts), boolean chains 10, loops 3 (6 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":"Sources/SWBApplePlatform/AppIntentsMetadataTaskProducer.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"e916119102f9b26f4936dac417e9ba048359a1d9af1d73eff5119ccfeb66063d"}},{"ruleId":"D2","level":"warning","message":{"text":"OperationSystemAdaptor.determinedRuleNeedsToRun (cognitive 38): OperationSystemAdaptor.determinedRuleNeedsToRun has cognitive complexity 38 (threshold 15). Drivers by points: if/else 14 (26 pts), boolean chains 8, match/switch 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2543}}}],"partialFingerprints":{"codehealthFindingId/v1":"70a4938b0315e4db45dec8c59f4ffcc780def3d4718a8b7c48e51edf4c1cc159"}},{"ruleId":"D2","level":"warning","message":{"text":"TargetDependencyResolver.addDependencies (cognitive 38): TargetDependencyResolver.addDependencies has cognitive complexity 38 (threshold 15). Drivers by points: if/else 17 (27 pts), boolean chains 5, loops 3 (5 pts), ternaries 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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":690}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b70900811908649ccd767cdd941eed81d358b5c09ddef236048905bcab13e6c"}},{"ruleId":"D2","level":"warning","message":{"text":"ShellScript.swift.computeScriptEnvironment (cognitive 38): ShellScript.swift.computeScriptEnvironment has cognitive complexity 38 (threshold 15). Drivers by points: loops 10 (19 pts), if/else 9 (16 pts), match/switch 2, boolean chains 1 (nesting depth added 16). 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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b486524295214392d6a875abe890b6c8bcd3702e51531a2bc320a96f919a5c1"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildSettings.init (cognitive 38): BuildSettings.init has cognitive complexity 38 (threshold 15). Drivers by points: if/else 7 (24 pts), loops 7 (14 pts) (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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":342}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0c83c3d3f4b56501ab8ca3b4c2400f4dc4a78bb439ff9ecea81cf49404ae5e3"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildPlan.init (cognitive 38): BuildPlan.init has cognitive complexity 38 (threshold 15). Drivers by points: if/else 13 (17 pts), loops 11 (15 pts), ternaries 3 (5 pts), boolean chains 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":"Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"de97f5e9c34c2885c136e709544c4cc40cb8901cc769489fb2e31645fa0f2685"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskProducerContext.computeFlattenedFrameworksPhaseBuildFiles (cognitive 38): TaskProducerContext.computeFlattenedFrameworksPhaseBuildFiles has cognitive complexity 38 (threshold 15). Drivers by points: if/else 12 (28 pts), boolean chains 7, match/switch 1 (2 pts), 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1555}}}],"partialFingerprints":{"codehealthFindingId/v1":"4154cd3c433b123fad115754434429ee32a75a6b41b68f46651b35c397e94c63"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildFilesProcessingContext.addFile (cognitive 38): BuildFilesProcessingContext.addFile has cognitive complexity 38 (threshold 15). Drivers by points: if/else 16 (28 pts), ternaries 2 (7 pts), loops 1 (2 pts), boolean chains 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"58dd53a89c2de9b7320d4dc356b72cb78ed2200c0264478cdc77ea7a24818a52"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescription.generatePreviewInfo (cognitive 38): BuildDescription.generatePreviewInfo has cognitive complexity 38 (threshold 15). Drivers by points: match/switch 5 (22 pts), if/else 4 (7 pts), loops 3 (6 pts), boolean chains 3 (nesting depth added 23). 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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ca31daa030f3bee8d9712405090158a98f66a0ff624ce6008c196d39f867443"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescriptionManager.constructBuildDescription (cognitive 38): BuildDescriptionManager.constructBuildDescription has cognitive complexity 38 (threshold 15). Drivers by points: if/else 7 (27 pts), loops 4 (7 pts), boolean chains 4 (nesting depth added 23). 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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d246c923aca03d8689f14abb0b238582b58db8f0f198f01e27cae6720da2581"}},{"ruleId":"D2","level":"warning","message":{"text":"IntentsCompilerSpec.constructIntentsCodeGenerationTasks (cognitive 37): IntentsCompilerSpec.constructIntentsCodeGenerationTasks has cognitive complexity 37 (threshold 15). Drivers by points: if/else 12 (17 pts), match/switch 4 (9 pts), boolean chains 7, error handling 2, loops 2 (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":"Sources/SWBApplePlatform/IntentsCompiler.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"985e37d5c78dfa28ec7e4e6f61bf6e1d62429348f0ccab91489aba9c98724ede"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildOperation.build (cognitive 37): BuildOperation.build has cognitive complexity 37 (threshold 15). Drivers by points: if/else 13 (20 pts), loops 5 (9 pts), error handling 3, boolean chains 2, match/switch 1 (2 pts), ternaries 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":363}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2b355dd7b94b0249284d55d5ae03818e39658b99deb522617f65c862d8a4e6c"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.addPreviewsOverrides (cognitive 37): SettingsBuilder.addPreviewsOverrides has cognitive complexity 37 (threshold 15). Drivers by points: if/else 16 (29 pts), boolean chains 3, match/switch 2 (3 pts), loops 1 (2 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3609}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc14513268b359f0f97a1e9b332337709c508cb28e8e531e8518697247f9d0eb"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroValueAssignmentTable.bindConditionParameter (cognitive 37): MacroValueAssignmentTable.bindConditionParameter has cognitive complexity 37 (threshold 15). Drivers by points: if/else 10 (20 pts), loops 5 (10 pts), ternaries 1 (5 pts), boolean chains 2 (nesting depth added 19). 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":"Sources/SWBMacro/MacroValueAssignmentTable.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e6e67e9f4107dd540d2d4456b8d878f9b6f6e8c5429b9609ba1e0a26e1a169f"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeTargetsRequiredToBuildForIndexing (cognitive 37): GlobalProductPlan.computeTargetsRequiredToBuildForIndexing has cognitive complexity 37 (threshold 15). Drivers by points: if/else 8 (24 pts), loops 5 (11 pts), boolean chains 2 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":510}}}],"partialFingerprints":{"codehealthFindingId/v1":"56761cfe403a756f347047e36e6a22eb72c8ecc8222c1e7635e881a28087719f"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescriptionManager.loadBuildDescription (cognitive 37): BuildDescriptionManager.loadBuildDescription has cognitive complexity 37 (threshold 15). Drivers by points: if/else 13 (21 pts), boolean chains 6, ternaries 3 (6 pts), error handling 2 (4 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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f5c05820c57a1e1b834ec2eebb63df8a84efea6536165789fe3ee1c82e758cd"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftDriverJobSchedulingTaskAction.performTaskAction (cognitive 37): SwiftDriverJobSchedulingTaskAction.performTaskAction has cognitive complexity 37 (threshold 15). Drivers by points: if/else 13 (28 pts), loops 2 (6 pts), boolean chains 2, error handling 1 (nesting depth added 19). 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"46dfe5ab64056f665fae83023ce9b92b7d6bdad9c2e9b9b5c8f47ab90cb49b3c"}},{"ruleId":"D2","level":"warning","message":{"text":"MsgPackDumpTool.execute (cognitive 36): MsgPackDumpTool.execute has cognitive complexity 36 (threshold 15). Drivers by points: if/else 18 (30 pts), match/switch 1 (3 pts), boolean chains 2, loops 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":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c38001319862910e21d81036c331c1fd0302da7ed06eb2caad974fd7a6e34d7"}},{"ruleId":"D2","level":"warning","message":{"text":"Core.createInitializedTestingCore (cognitive 36): Core.createInitializedTestingCore has cognitive complexity 36 (threshold 15). Drivers by points: if/else 16 (26 pts), loops 4 (7 pts), boolean chains 3 (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":"Sources/SWBCore/Core.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"f46d1ce2a4940a3207591da4089f7e63d8ef7fe55ccb503403b937450fbbaad8"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.addAdditionalContent (cognitive 36): InfoPlistProcessorTaskAction.addAdditionalContent has cognitive complexity 36 (threshold 15). Drivers by points: if/else 11 (21 pts), loops 2 (6 pts), match/switch 1 (4 pts), error handling 3, boolean chains 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbf0e949ccf76b7cea0a6d7211214868ddcca62269cbcdb16e26593277b62845"}},{"ruleId":"D2","level":"warning","message":{"text":"LinkAssetCatalogTaskAction.performLinkAssetCatalogTaskAction (cognitive 36): LinkAssetCatalogTaskAction.performLinkAssetCatalogTaskAction has cognitive complexity 36 (threshold 15). Drivers by points: if/else 14 (28 pts), match/switch 2 (5 pts), loops 1 (2 pts), error handling 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":"Sources/SWBTaskExecution/TaskActions/LinkAssetCatalogTaskAction.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"faca7703dfb5e9bd9f07d02d69812eec407d6a5ddb890dac5649b2a7f3786dbe"}},{"ruleId":"D2","level":"warning","message":{"text":"ValidateProductTaskAction.validateiPadMultiTaskingSplitViewSupport (cognitive 36): ValidateProductTaskAction.validateiPadMultiTaskingSplitViewSupport has cognitive complexity 36 (threshold 15). Drivers by points: if/else 17 (29 pts), boolean chains 6, loops 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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9f8402faaa46e4e16d1949d1a899ee7e836188fcbec986e91c6ae3d36bf0d95"}},{"ruleId":"D2","level":"warning","message":{"text":"Path.matchesFilenamePattern (cognitive 36): Path.matchesFilenamePattern has cognitive complexity 36 (threshold 15). Drivers by points: if/else 16 (30 pts), error handling 2 (3 pts), loops 2, 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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":743}}}],"partialFingerprints":{"codehealthFindingId/v1":"5420968171a56a3658cc63c6aaa9d0e3aa7fada5b79f20adb4d6fda8dd793016"}},{"ruleId":"D2","level":"warning","message":{"text":"TAPISymbolExtractorTaskProducer.generateTasks (cognitive 35): TAPISymbolExtractorTaskProducer.generateTasks has cognitive complexity 35 (threshold 15). Drivers by points: if/else 10 (16 pts), loops 5 (10 pts), error handling 3 (7 pts), boolean chains 2 (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb40021be14f96a9e048b71373d844640a6d842cccf078b8af861287cb3a63ef"}},{"ruleId":"D2","level":"warning","message":{"text":"RunningTask.main (cognitive 35): RunningTask.main has cognitive complexity 35 (threshold 15). Drivers by points: if/else 17 (25 pts), boolean chains 5, loops 2 (4 pts), match/switch 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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":756}}}],"partialFingerprints":{"codehealthFindingId/v1":"eebf2f653dce97cd84851d1d90310341a0bb0347fb565f50887231e76b06d087"}},{"ruleId":"D2","level":"warning","message":{"text":"fnmatch.swift.rangematch (cognitive 35): fnmatch.swift.rangematch has cognitive complexity 35 (threshold 15). Drivers by points: if/else 13 (30 pts), ternaries 2 (3 pts), boolean chains 1, loops 1 (nesting depth added 18). 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":"Sources/SWBUtil/fnmatch.swift"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc1409d27141f5608e6e8814bde698af0b0b23900e8004c4c7d7faf659fe0001"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBBuildServiceConnection.buildServiceLocation (cognitive 35): SWBBuildServiceConnection.buildServiceLocation has cognitive complexity 35 (threshold 15). Drivers by points: if/else 15 (21 pts), boolean chains 14 (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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"e354928d75e6cdf40c7ab1f9c167286b9f65221ffbf430a2aeb516845dc150c9"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildService.buildServiceModTime (cognitive 34): BuildService.buildServiceModTime has cognitive complexity 34 (threshold 15). Drivers by points: if/else 9 (24 pts), error handling 3 (6 pts), loops 2 (4 pts) (nesting depth added 20). 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":"Sources/SWBBuildService/BuildService.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"af09af574482daecab98cd67b3b281f07af87cc2f8a5d75cc05e5500db36250d"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 34): Options.init has cognitive complexity 34 (threshold 15). Drivers by points: if/else 12 (28 pts), boolean chains 3, match/switch 1 (2 pts), 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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"39126935f0a7ff593e363dd9c9417bebe807e1cb6f675dc08f61fcf8578a01e8"}},{"ruleId":"D2","level":"warning","message":{"text":"PbxCp.swift.copyDirectory (cognitive 34): PbxCp.swift.copyDirectory has cognitive complexity 34 (threshold 15). Drivers by points: if/else 11 (25 pts), loops 4 (8 pts), boolean chains 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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":421}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e4991a98ca52b80545244eaa0be8a55a89c9cc1ee3b17b1ca4c69741c192310"}},{"ruleId":"D2","level":"warning","message":{"text":"CleanOperation.clean (cognitive 33): CleanOperation.clean has cognitive complexity 33 (threshold 15). Drivers by points: if/else 11 (24 pts), boolean chains 3, error handling 1 (3 pts), loops 2 (3 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":"Sources/SWBBuildSystem/CleanOperation.swift"},"region":{"startLine":292}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc903bff757e7772b4751de7334f28129101ac78f485cbc8c12cab44a3d4f0e3"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildPhaseTarget.buildPhaseTargetTaskProducers (cognitive 33): BuildPhaseTarget.buildPhaseTargetTaskProducers has cognitive complexity 33 (threshold 15). Drivers by points: if/else 12 (25 pts), loops 4 (8 pts) (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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"98d5b82387361d0aeae29cc91166acf6dc6cc9113e23c600738b60adb89daad1"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildRequestContext.selectConfiguredTargetForIndex (cognitive 32): BuildRequestContext.selectConfiguredTargetForIndex has cognitive complexity 32 (threshold 15). Drivers by points: if/else 17 (23 pts), ternaries 3 (5 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":"Sources/SWBCore/BuildRequestContext.swift"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"79d8baac740175d18256b9b9508a4036f068b44095c5756ebf91aa16c61adb5a"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getTargetDerivedSettings (cognitive 32): SettingsBuilder.getTargetDerivedSettings has cognitive complexity 32 (threshold 15). Drivers by points: if/else 11 (17 pts), boolean chains 13, loops 1 (2 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2230}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6b953d79472da55adf4ac7f1a5c5641b546f0e9107aa182ae9ace0b83bfb0c0"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftStandardLibrariesTaskProducer.generateTasks (cognitive 32): SwiftStandardLibrariesTaskProducer.generateTasks has cognitive complexity 32 (threshold 15). Drivers by points: if/else 11 (20 pts), boolean chains 5, ternaries 2 (4 pts), loops 1 (3 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftStandardLibrariesTaskProducer.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"6553a80e98ddd3102fffae7c69c7d4b164ddac38faaa38bcac62b6fdbd28c7ef"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBTerminal.swift.main (cognitive 32): SWBTerminal.swift.main has cognitive complexity 32 (threshold 15). Drivers by points: if/else 5 (17 pts), loops 2 (7 pts), ternaries 2 (6 pts), boolean chains 1, error handling 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":"Sources/SwiftBuild/SWBTerminal.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a9bb48027b04d412c5cda4c8f9bc112f98b49232b054642d50c546a90ff38c0"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyResolver.lookupConfiguredTarget (cognitive 31): DependencyResolver.lookupConfiguredTarget has cognitive complexity 31 (threshold 15). Drivers by points: if/else 6 (21 pts), ternaries 1 (5 pts), loops 1 (3 pts), boolean chains 2 (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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":739}}}],"partialFingerprints":{"codehealthFindingId/v1":"0786573baac5417bbc88eafd1371582d258b66076ccb3a9c398cda04cf779f12"}},{"ruleId":"D2","level":"warning","message":{"text":"RecursiveSearchPathResolver.computeExpandedPaths (cognitive 31): RecursiveSearchPathResolver.computeExpandedPaths has cognitive complexity 31 (threshold 15). Drivers by points: if/else 10 (17 pts), error handling 3 (7 pts), loops 3 (5 pts), boolean chains 2 (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":"Sources/SWBCore/Settings/RecursiveSearchPathResolver.swift"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd844156f69ece6ce0e98e5c2030ebd16ff585e4784954b910fee17b45087215"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getTargetDynamicSettings (cognitive 31): SettingsBuilder.getTargetDynamicSettings has cognitive complexity 31 (threshold 15). Drivers by points: if/else 15 (27 pts), boolean chains 4 (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2425}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e4eb06a54344954e9c54c4794302002f9123cf2d47f34e8e18e65a32c14f79d"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftDriverJobTaskAction.replayCachedCommand (cognitive 31): SwiftDriverJobTaskAction.replayCachedCommand has cognitive complexity 31 (threshold 15). Drivers by points: if/else 11 (22 pts), loops 4 (6 pts), ternaries 1 (2 pts), error handling 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":606}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cf8dcff5ae94bf89edbd7e286cd09cb5c0330406be0ea985fa4ca2ac960ed55"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeImpartedBuildProperties (cognitive 30): GlobalProductPlan.computeImpartedBuildProperties has cognitive complexity 30 (threshold 15). Drivers by points: loops 5 (17 pts), if/else 4 (10 pts), error handling 1 (2 pts), boolean chains 1 (nesting depth added 19). 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":681}}}],"partialFingerprints":{"codehealthFindingId/v1":"d94386cf9b753dfbf9fdf72e83f04e2b4b6e422d250ef13de86f091bab431e31"}},{"ruleId":"D2","level":"warning","message":{"text":"HeadermapTaskProducer.constructAllNonFrameworkTargetHeadersMap (cognitive 30): HeadermapTaskProducer.constructAllNonFrameworkTargetHeadersMap has cognitive complexity 30 (threshold 15). Drivers by points: if/else 9 (22 pts), loops 4 (6 pts), boolean chains 2 (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"85c670e6120a3235fa29ce6024b149af253bf03e1b014c01fb997bd55acd1834"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeHostingRelationships (cognitive 29): GlobalProductPlan.computeHostingRelationships has cognitive complexity 29 (threshold 15). Drivers by points: if/else 6 (14 pts), loops 6 (13 pts), boolean chains 2 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":388}}}],"partialFingerprints":{"codehealthFindingId/v1":"436b247c25fc0b84ca321521b81f8eb43ccee9e96a1ba0d52dc0db7a0f8bd666"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildResults.buildTranscript (cognitive 29): BuildResults.buildTranscript has cognitive complexity 29 (threshold 15). Drivers by points: if/else 6 (15 pts), loops 3 (7 pts), match/switch 3 (7 pts) (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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":524}}}],"partialFingerprints":{"codehealthFindingId/v1":"2be4df4b150176e3870db49652c718734e9074ba85a2d4abc3790e5c5ec2b733"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBBuildOperation.handleMessage (cognitive 29): SWBBuildOperation.handleMessage has cognitive complexity 29 (threshold 15). Drivers by points: if/else 9 (16 pts), boolean chains 10, 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":"Sources/SwiftBuild/SWBBuildOperation.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"c863f3918fffd28264453cc8004ff5bbd420fb5a7e998e1952847138aea02a8c"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.getTargetTaskOverrides (cognitive 28): SettingsBuilder.getTargetTaskOverrides has cognitive complexity 28 (threshold 15). Drivers by points: if/else 14 (24 pts), boolean chains 2, loops 1 (2 pts) (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4914}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a608f283e206159142e661f156cc3f9b86dae8002b5b5097d73e5c9b946ea26"}},{"ruleId":"D2","level":"warning","message":{"text":"ShellScriptTaskProducer.generateTasks (cognitive 28): ShellScriptTaskProducer.generateTasks has cognitive complexity 28 (threshold 15). Drivers by points: if/else 10 (12 pts), boolean chains 9, match/switch 2 (3 pts), ternaries 2 (3 pts), loops 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec971ab90578b12f3cf9e51afffcd96227f162ab73035dda97bfac0e3062ebad"}},{"ruleId":"D2","level":"warning","message":{"text":"WindowsDLLCopyTaskProducer.prepare (cognitive 28): WindowsDLLCopyTaskProducer.prepare has cognitive complexity 28 (threshold 15). Drivers by points: if/else 3 (11 pts), loops 4 (10 pts), error handling 2 (6 pts), boolean chains 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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/WindowsDLLCopyTaskProducer.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cc20178f957382db01bf9112f7bd2b329c8e3745a19502e4f38e18146b2c097"}},{"ruleId":"D2","level":"warning","message":{"text":"FileCopyTaskAction.performTaskAction (cognitive 28): FileCopyTaskAction.performTaskAction has cognitive complexity 28 (threshold 15). Drivers by points: if/else 8 (16 pts), boolean chains 5, loops 2 (5 pts), error handling 1, 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":"Sources/SWBTaskExecution/TaskActions/FileCopyTaskAction.swift"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"90c8dea262c54d6751bcf60888fd3806d98261c550afb20d721c76cbb4b9b43f"}},{"ruleId":"D2","level":"warning","message":{"text":"ValidateProductTaskAction.validateFrameworks (cognitive 28): ValidateProductTaskAction.validateFrameworks has cognitive complexity 28 (threshold 15). Drivers by points: if/else 11 (19 pts), boolean chains 4, error handling 1 (2 pts), ternaries 2, 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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"80596f4610ff01789c8e9c67336a0f9015a7fe4a4cc6814ee631671b0d52100a"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBServiceConsolePrepareForIndexCommand.perform (cognitive 28): SWBServiceConsolePrepareForIndexCommand.perform has cognitive complexity 28 (threshold 15). Drivers by points: if/else 9 (18 pts), error handling 5 (7 pts), match/switch 1 (2 pts), loops 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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f7e670531be766edc197b0802abb22acdbe31dc59840b84e6cd0ba99f92d52e"}},{"ruleId":"D2","level":"warning","message":{"text":"AppIntentsSSUTrainingCompilerSpec.shouldConstructSsuTrainingTask (cognitive 27): AppIntentsSSUTrainingCompilerSpec.shouldConstructSsuTrainingTask has cognitive complexity 27 (threshold 15). Drivers by points: if/else 13 (20 pts), boolean chains 7 (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":"Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"b908369306c2e703a7b7c5abcc8fd4e386c314f3e41973fc6cb704527678527f"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFramework.copy (cognitive 27): XCFramework.copy has cognitive complexity 27 (threshold 15). Drivers by points: if/else 14 (21 pts), loops 2 (4 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1290}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2a3c2936a79739a2e7ec6e81cb408943deb4c59e91333194c0fae055d77822a"}},{"ruleId":"D2","level":"warning","message":{"text":"ClangToolInfo.swift.discoveredClangToolInfo (cognitive 27): ClangToolInfo.swift.discoveredClangToolInfo has cognitive complexity 27 (threshold 15). Drivers by points: if/else 11 (24 pts), boolean chains 1, error handling 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":"Sources/SWBCore/ToolInfo/ClangToolInfo.swift"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b7f041deb5ab630c40ba75559d768e6f6852e169f20857f10912fd60c0762f7"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftCachingKeyQueryTaskAction.performTaskAction (cognitive 27): SwiftCachingKeyQueryTaskAction.performTaskAction has cognitive complexity 27 (threshold 15). Drivers by points: if/else 5 (16 pts), ternaries 1 (5 pts), error handling 2 (3 pts), loops 1 (3 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":"Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7416039afe513939bf1c3ca42d3f063a3fa8d568e3388730eb6553b2c20bf8a"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroEvaluationMsg.handle (cognitive 26): MacroEvaluationMsg.handle has cognitive complexity 26 (threshold 15). Drivers by points: if/else 9 (15 pts), match/switch 4 (7 pts), loops 1 (2 pts), ternaries 1 (2 pts) (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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1410}}}],"partialFingerprints":{"codehealthFindingId/v1":"46f1ce6933c0fa485cb1cb4272f9d1ca1bbf8a5fecd86b48071d0f59f6c97319"}},{"ruleId":"D2","level":"warning","message":{"text":"Task.init (cognitive 26): Task.init has cognitive complexity 26 (threshold 15). Drivers by points: if/else 15 (22 pts), boolean chains 2, match/switch 1 (2 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":"Sources/SWBTaskExecution/Task.swift"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfdfdc3a12acd222b99bbf91dc33c4949872442f848e43aa559da58c07a26558"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.setRequiredDeviceCapabilities (cognitive 26): InfoPlistProcessorTaskAction.setRequiredDeviceCapabilities has cognitive complexity 26 (threshold 15). Drivers by points: if/else 8 (20 pts), loops 1 (3 pts), match/switch 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1337}}}],"partialFingerprints":{"codehealthFindingId/v1":"509c8dc12305442f2cac3d95df5f6393d7de083ceae47b53cd6a11f548178af0"}},{"ruleId":"D2","level":"warning","message":{"text":"RealityAssetsTaskProducer.generateTasks (cognitive 25): RealityAssetsTaskProducer.generateTasks has cognitive complexity 25 (threshold 15). Drivers by points: if/else 8 (15 pts), error handling 2 (7 pts), boolean chains 2, loops 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":"Sources/SWBApplePlatform/RealityAssetsTaskProducer.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b94f001b7b7b2463aee0ad11005e0859b6f30a1a90b2428442d7f0288baf891"}},{"ruleId":"D2","level":"warning","message":{"text":"OperationSystemAdaptor.commandProcessFinished (cognitive 25): OperationSystemAdaptor.commandProcessFinished has cognitive complexity 25 (threshold 15). Drivers by points: if/else 5 (10 pts), boolean chains 5, match/switch 1 (4 pts), error handling 1 (3 pts), loops 1 (3 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2351}}}],"partialFingerprints":{"codehealthFindingId/v1":"06766fc6b81b3d3a8399f0ccdb5d6aa9057609a458e8768bb2c5714915b689dc"}},{"ruleId":"D2","level":"warning","message":{"text":"Settings.infoForBuildSettingsEditor (cognitive 25): Settings.infoForBuildSettingsEditor has cognitive complexity 25 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 5 (10 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":919}}}],"partialFingerprints":{"codehealthFindingId/v1":"c76f63dafd312244f0ef121bc5c35a7ae005cb76d07eae48a31d665ac56c3bb6"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.addSecondaryTargetDerivedSettings (cognitive 25): SettingsBuilder.addSecondaryTargetDerivedSettings has cognitive complexity 25 (threshold 15). Drivers by points: if/else 10 (23 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2343}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a08a01779a1b769b3caf4d96f8af1c9b6ef363a1518b30e7cfe960ac696aff2"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroConditionExpression.parsePrimaryExpression (cognitive 25): MacroConditionExpression.parsePrimaryExpression has cognitive complexity 25 (threshold 15). Drivers by points: if/else 8 (20 pts), loops 1 (3 pts), boolean chains 1, match/switch 1 (nesting depth added 14). 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":"Sources/SWBMacro/MacroConditionExpression.swift"},"region":{"startLine":258}}}],"partialFingerprints":{"codehealthFindingId/v1":"e05333ae264a9769534dc3f49ea345ffc4a8930eeb69cc387ddc42cc1dae9690"}},{"ruleId":"D2","level":"warning","message":{"text":"ProductPostprocessingTaskProducer.addCodeSignTasks (cognitive 25): ProductPostprocessingTaskProducer.addCodeSignTasks has cognitive complexity 25 (threshold 15). Drivers by points: if/else 9 (19 pts), boolean chains 3, ternaries 1 (2 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"81ea3c53c011eb4e15480ca7e910b503d381665828202a9e51f2fba27cbd8c09"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftFrameworkABICheckerTaskProducer.generateTasks (cognitive 25): SwiftFrameworkABICheckerTaskProducer.generateTasks has cognitive complexity 25 (threshold 15). Drivers by points: if/else 7 (18 pts), loops 2 (3 pts), match/switch 1 (3 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"e69a2aabdecd6bf52d73aaafb64f9297e4553466677d14d4b149e73482542b52"}},{"ruleId":"D2","level":"warning","message":{"text":"PbxCp.swift.copyTree (cognitive 25): PbxCp.swift.copyTree has cognitive complexity 25 (threshold 15). Drivers by points: if/else 8 (13 pts), error handling 6 (11 pts), boolean chains 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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"360a63ac1af59cdae1cacf7325f84af70e0d465a5170cdbebe59f769729d1a57"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyResolver.init (cognitive 24): DependencyResolver.init has cognitive complexity 24 (threshold 15). Drivers by points: if/else 8 (15 pts), loops 3 (7 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":523}}}],"partialFingerprints":{"codehealthFindingId/v1":"f212bd1a5bc0da0031d723c9b1569ae7cab6d171944ff7be4a78e1e2e61e42b5"}},{"ruleId":"D2","level":"warning","message":{"text":"ExecutableTask.extractSandboxViolationMessages_ASYNC_UNSAFE (cognitive 24): ExecutableTask.extractSandboxViolationMessages_ASYNC_UNSAFE has cognitive complexity 24 (threshold 15). Drivers by points: if/else 7 (18 pts), boolean chains 3, loops 1 (3 pts) (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":"Sources/SWBCore/ExecutableTask.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"9769b21a042deacb15334cde36ad1bea7e3957ecb7eb111829376c737dbb55ed"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftCompilerOutputParser.close (cognitive 24): SwiftCompilerOutputParser.close has cognitive complexity 24 (threshold 15). Drivers by points: if/else 7 (15 pts), match/switch 2 (5 pts), ternaries 1 (2 pts), boolean chains 1, loops 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":"Sources/SWBCore/SwiftOutputParsing.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d024ccf15459d7473b2c3b6e0fadea7be87f5cf1bc8105752b14eae7d6a4cb7"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftModuleDependencyGraph.generatePrecompiledModulesReport (cognitive 24): SwiftModuleDependencyGraph.generatePrecompiledModulesReport has cognitive complexity 24 (threshold 15). Drivers by points: if/else 8 (13 pts), loops 4 (7 pts), match/switch 1 (2 pts), ternaries 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":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"74e3aa6b6b890aa6c52bc0a1600430b85c104adc4bd949a1944f2741d1f0b9e9"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildSettings.encode (cognitive 24): BuildSettings.encode has cognitive complexity 24 (threshold 15). Drivers by points: loops 11 (20 pts), if/else 1 (4 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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":388}}}],"partialFingerprints":{"codehealthFindingId/v1":"0201b09ad3fbbffbdca45ce24081abe517871be10ec508f1af5c0d9e8e0946ea"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftSDK.findSDKsWithIdentifiers (cognitive 24): SwiftSDK.findSDKsWithIdentifiers has cognitive complexity 24 (threshold 15). Drivers by points: if/else 8 (21 pts), loops 2 (3 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":"Sources/SWBProtocol/SwiftSDK.swift"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf8873c2c1e1e1ee47a1fa2a4961b2294b87fc43c39cb26fc8c9a106e0d001e4"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescription.buildNodesToPrepareForIndex (cognitive 24): BuildDescription.buildNodesToPrepareForIndex has cognitive complexity 24 (threshold 15). Drivers by points: if/else 6 (17 pts), loops 2 (5 pts), 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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"7834b63ccc56d8fc1cc9ecda50d7089ca6aef7055c43df345fac5549ef024d36"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 24): Options.init has cognitive complexity 24 (threshold 15). Drivers by points: if/else 11 (21 pts), match/switch 1 (2 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":"Sources/SWBTaskExecution/TaskActions/ClangModuleVerifierInputGeneratorTaskAction.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac21f5301565c4dbb0529d055398d35e96084c1ba6208f7c8b341fda2203e7e7"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildOperationTester.checkBuild (cognitive 24): BuildOperationTester.checkBuild has cognitive complexity 24 (threshold 15). Drivers by points: if/else 12 (15 pts), loops 2 (4 pts), boolean chains 3, ternaries 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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1464}}}],"partialFingerprints":{"codehealthFindingId/v1":"d49302ee32eb8fbf062d2c75edb15f602afd2b6f0b41baba9cd3891bccb12132"}},{"ruleId":"D2","level":"warning","message":{"text":"LocalFS.createDirectory (cognitive 24): LocalFS.createDirectory has cognitive complexity 24 (threshold 15). Drivers by points: if/else 10 (21 pts), boolean chains 2, error handling 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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"9eb8456b51025dfab61336c677bb2802d3b23be8373da6adbc51f82141661e96"}},{"ruleId":"D2","level":"warning","message":{"text":"PbxCp.swift.copyRegular (cognitive 24): PbxCp.swift.copyRegular has cognitive complexity 24 (threshold 15). Drivers by points: if/else 9 (17 pts), ternaries 2 (7 pts) (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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":342}}}],"partialFingerprints":{"codehealthFindingId/v1":"f07c0e7bb41ea13e25799f1384a3691c488625b61b2af034cdcb16bec2061e5e"}},{"ruleId":"D2","level":"warning","message":{"text":"FileCopyTaskActionContext.stubCommandLine (cognitive 23): FileCopyTaskActionContext.stubCommandLine has cognitive complexity 23 (threshold 15). Drivers by points: if/else 9 (13 pts), boolean chains 8, match/switch 1, ternaries 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":"Sources/SWBCore/PlannedTaskAction.swift"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"6454d35df4e962b37fdc0ce11b0e0338fd55fa0c0143e67059991418ef5b8040"}},{"ruleId":"D2","level":"warning","message":{"text":"SDKRegistry.sdksForActiveRunDestination (cognitive 23): SDKRegistry.sdksForActiveRunDestination has cognitive complexity 23 (threshold 15). Drivers by points: if/else 8 (15 pts), loops 3 (7 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1299}}}],"partialFingerprints":{"codehealthFindingId/v1":"575d8e1ffc6bd565de0c728b17cbc3ec3c6c10a6b3beb667bd4f867c95230260"}},{"ruleId":"D2","level":"warning","message":{"text":"TargetDependencyResolver.computeDiscoveredTargetInfo (cognitive 23): TargetDependencyResolver.computeDiscoveredTargetInfo has cognitive complexity 23 (threshold 15). Drivers by points: if/else 6 (12 pts), loops 3 (8 pts), boolean chains 3 (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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":797}}}],"partialFingerprints":{"codehealthFindingId/v1":"986d4168d9af976cea98abe70c1d68c3c6a426aa745f838db00ebecc5c6573d2"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFramework.libraryInfo (cognitive 23): XCFramework.libraryInfo has cognitive complexity 23 (threshold 15). Drivers by points: if/else 13 (16 pts), error handling 2, loops 1 (2 pts), ternaries 2, 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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1013}}}],"partialFingerprints":{"codehealthFindingId/v1":"31b46312f96b1aece7d1794cd0eec22369def9360acc2ce7bb18d3cbe63bd3a7"}},{"ruleId":"D2","level":"warning","message":{"text":"ModuleVerifierTaskProducer.generateClangModuleVerifierTask (cognitive 23): ModuleVerifierTaskProducer.generateClangModuleVerifierTask has cognitive complexity 23 (threshold 15). Drivers by points: if/else 14 (17 pts), boolean chains 3, ternaries 2 (3 pts) (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"2af4f6d424dff56d3c5302d1cb2574c73a61602b491c7c1be2a4dc1e294e2492"}},{"ruleId":"D2","level":"warning","message":{"text":"ProductPostprocessingTaskProducer.generateTasks (cognitive 23): ProductPostprocessingTaskProducer.generateTasks has cognitive complexity 23 (threshold 15). Drivers by points: if/else 8 (9 pts), loops 4 (9 pts), ternaries 1 (3 pts), boolean chains 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"034baab1e16688ea0d3fecc34acaa9f4295554a551e2d3825228ed60a4636c06"}},{"ruleId":"D2","level":"warning","message":{"text":"ClangScanTaskAction.performTaskAction (cognitive 23): ClangScanTaskAction.performTaskAction has cognitive complexity 23 (threshold 15). Drivers by points: if/else 8 (12 pts), loops 4 (6 pts), error handling 4, 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":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d58bfc54ff004a8ffdab218fde1077cf0b6197f324ae56dc8f4f57fd91c08d5"}},{"ruleId":"D2","level":"warning","message":{"text":"ODRAssetPackManifestTaskAction.performTaskAction (cognitive 23): ODRAssetPackManifestTaskAction.performTaskAction has cognitive complexity 23 (threshold 15). Drivers by points: if/else 11 (19 pts), error handling 2 (3 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":"Sources/SWBTaskExecution/TaskActions/ODRAssetPackManifestTaskAction.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ab3c8da5bac57d1b34486964cfa11d051c5f547b5845871f854cc9eb946abb6"}},{"ruleId":"D2","level":"warning","message":{"text":"ProcessProductEntitlementsTaskAction.performTaskAction (cognitive 23): ProcessProductEntitlementsTaskAction.performTaskAction has cognitive complexity 23 (threshold 15). Drivers by points: if/else 7 (13 pts), error handling 4 (9 pts), ternaries 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":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd7ffe7bf48d976410f17757b4cfaa06f6a103659c2cb7ad7dc3d877cf334ba5"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftHeaderToolTaskAction.performTaskAction (cognitive 23): SwiftHeaderToolTaskAction.performTaskAction has cognitive complexity 23 (threshold 15). Drivers by points: if/else 8 (18 pts), boolean chains 2, loops 1 (2 pts), error handling 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":"Sources/SWBTaskExecution/TaskActions/SwiftHeaderToolTaskAction.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dae874c75e2650933666464e91adf16ef310838e803f4b5d1a675e8f2e4c858"}},{"ruleId":"D2","level":"warning","message":{"text":"Path.ends (cognitive 23): Path.ends has cognitive complexity 23 (threshold 15). Drivers by points: if/else 7 (15 pts), ternaries 2 (4 pts), boolean chains 2, loops 1 (2 pts) (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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":703}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a14d5e58a1cd1b1da5163cf7dac326215846784e6ea602228e214dbfacccf15"}},{"ruleId":"D2","level":"warning","message":{"text":"OperationSystemAdaptor.pruneExplicitPrecompiledModules (cognitive 22): OperationSystemAdaptor.pruneExplicitPrecompiledModules has cognitive complexity 22 (threshold 15). Drivers by points: if/else 8 (14 pts), loops 3 (5 pts), boolean chains 3 (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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1726}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b8afbb1de3473d5f698ef15e0057d62703eb4b4eeff18946ee62887d637f0f7"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyCycleMessagePayload.message (cognitive 22): DependencyCycleMessagePayload.message has cognitive complexity 22 (threshold 15). Drivers by points: if/else 7 (16 pts), match/switch 2 (3 pts), ternaries 1 (3 pts) (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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"3380154d93781a7d7ac67961c1cff497b27b8ec39689fe35ec81dd2529333852"}},{"ruleId":"D2","level":"warning","message":{"text":"SDKVariant.evaluateTargetedDeviceFamilyBuildSetting (cognitive 22): SDKVariant.evaluateTargetedDeviceFamilyBuildSetting has cognitive complexity 22 (threshold 15). Drivers by points: if/else 10 (15 pts), boolean chains 6, ternaries 1 (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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"b70b080e9dae4deeae6b0aa7d2d9000c6ed1ca902069a67be1a2b9c83263874a"}},{"ruleId":"D2","level":"warning","message":{"text":"ModuleVerifierTargetSet.combinations (cognitive 22): ModuleVerifierTargetSet.combinations has cognitive complexity 22 (threshold 15). Drivers by points: loops 6 (16 pts), if/else 3 (5 pts), boolean chains 1 (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":"Sources/SWBCore/ClangModuleVerifier/ModuleVerifierTarget.swift"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"c93a550296a400904552a76a9c3cee7f5d7326faffe77155715ab0e2b93d5f37"}},{"ruleId":"D2","level":"warning","message":{"text":"CoreSettings.systemBuildRules (cognitive 22): CoreSettings.systemBuildRules has cognitive complexity 22 (threshold 15). Drivers by points: if/else 6 (12 pts), loops 4 (5 pts), boolean chains 2, ternaries 1 (2 pts), error handling 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf438881fa4481da1595ad50a20409b7426c2935a3cca56beb3dc1e1bce680fa"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskProducerContext.compileSourcesExportOnlySwiftSymbols (cognitive 22): TaskProducerContext.compileSourcesExportOnlySwiftSymbols has cognitive complexity 22 (threshold 15). Drivers by points: if/else 9 (15 pts), boolean chains 4, loops 2 (3 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1501}}}],"partialFingerprints":{"codehealthFindingId/v1":"18d327e0078ae2ae57e68214db317f726ddc180bee92975db6a23bc58b78383e"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescriptionManager.getNewOrCachedBuildDescription (cognitive 22): BuildDescriptionManager.getNewOrCachedBuildDescription has cognitive complexity 22 (threshold 15). Drivers by points: if/else 12 (16 pts), boolean chains 2, error handling 1 (2 pts), ternaries 1 (2 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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":392}}}],"partialFingerprints":{"codehealthFindingId/v1":"14be442d7f29502192ea28453c49806100cd2b53d5460169779892b025cd2e08"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.addAdditionalEntriesFromPlatform (cognitive 22): InfoPlistProcessorTaskAction.addAdditionalEntriesFromPlatform has cognitive complexity 22 (threshold 15). Drivers by points: if/else 7 (17 pts), loops 1 (3 pts), boolean chains 2 (nesting depth added 12). 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":873}}}],"partialFingerprints":{"codehealthFindingId/v1":"c685e8acc22b9be1daf0862701ccc2cad27687ee98d2b90cded91a64ffa66f59"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildOperationTester.checkBuildDescription (cognitive 22): BuildOperationTester.checkBuildDescription has cognitive complexity 22 (threshold 15). Drivers by points: if/else 8 (16 pts), loops 2 (5 pts), match/switch 1 (nesting depth added 11). 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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1373}}}],"partialFingerprints":{"codehealthFindingId/v1":"269165d0d70d2ee2a935088c1fcf007f09227891ffd92fc61a4e3e4a988b646e"}},{"ruleId":"D2","level":"warning","message":{"text":"SWBBuildServer.handle (cognitive 22): SWBBuildServer.handle has cognitive complexity 22 (threshold 15). Drivers by points: if/else 7 (16 pts), match/switch 2 (4 pts), loops 1 (2 pts) (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":"Sources/SwiftBuild/SWBBuildServer.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"67c985d4b8b379cc971a658d8bfaa173fc60ba85d6a0bfec4e19ce100aa91fb7"}},{"ruleId":"D2","level":"warning","message":{"text":"Core.getInitializedCore (cognitive 21): Core.getInitializedCore has cognitive complexity 21 (threshold 15). Drivers by points: if/else 8 (10 pts), error handling 4 (5 pts), match/switch 1 (3 pts), loops 2, boolean chains 1 (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":"Sources/SWBCore/Core.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe192644c1391b4ed57762aee9138d662e1a5373f515187544543a48e28f4f6f"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyResolver.lookupTopLevelConfiguredTarget (cognitive 21): DependencyResolver.lookupTopLevelConfiguredTarget has cognitive complexity 21 (threshold 15). Drivers by points: if/else 9 (18 pts), boolean chains 2, 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":611}}}],"partialFingerprints":{"codehealthFindingId/v1":"77c58b1258958195b908ffaaf1cf2ded39d46b24de53c28fea9f3667ed96c4b6"}},{"ruleId":"D2","level":"warning","message":{"text":"SDKRegistry.lookup (cognitive 21): SDKRegistry.lookup has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12 (19 pts), boolean chains 1, 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1042}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5f4c39fe111e1dc8b0f93d471ce1a4b750a3a50eaff0e33d30aec989216d03d"}},{"ruleId":"D2","level":"warning","message":{"text":"CASOptions.create (cognitive 21): CASOptions.create has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12 (16 pts), match/switch 2 (3 pts), boolean chains 1, ternaries 1 (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":"Sources/SWBCore/Settings/CASOptions.swift"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"926b60beaeab06fb05ec4c4657de7980839f1fa5d348419c7123eb9797dfb172"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildRule.init (cognitive 21): BuildRule.init has cognitive complexity 21 (threshold 15). Drivers by points: if/else 10 (14 pts), boolean chains 6, 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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"49dfcad18dbb4ed9d203bfed12da6e217eef09fcdb6d02d3b015bec947ca5cb5"}},{"ruleId":"D2","level":"warning","message":{"text":"ProductPostprocessingTaskProducer.stubAPIDestination (cognitive 21): ProductPostprocessingTaskProducer.stubAPIDestination has cognitive complexity 21 (threshold 15). Drivers by points: if/else 9 (14 pts), boolean chains 3, loops 1 (2 pts), ternaries 1 (2 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":291}}}],"partialFingerprints":{"codehealthFindingId/v1":"691ebcdc62a4795f70e0c4069ceff3d065946d50e17f63205ce1d7ef07d4571e"}},{"ruleId":"D2","level":"warning","message":{"text":"CopyTiffTaskAction.performTaskAction (cognitive 21): CopyTiffTaskAction.performTaskAction has cognitive complexity 21 (threshold 15). Drivers by points: if/else 5 (10 pts), error handling 3 (9 pts), boolean chains 1, 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":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"69dea848967b61bbd386bc1b55d1d801eca63d2c8a73dcebb4c524289d70a462"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 21): Options.init has cognitive complexity 21 (threshold 15). Drivers by points: if/else 8 (16 pts), boolean chains 2, match/switch 1 (2 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":"Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a0d26e34813935e403889e5b773b77bd44fe45e80e551ab8c4c9128e41e4806"}},{"ruleId":"D2","level":"warning","message":{"text":"LLVMStyleCommandCodec.decode (cognitive 21): LLVMStyleCommandCodec.decode has cognitive complexity 21 (threshold 15). Drivers by points: match/switch 6 (15 pts), if/else 5, loops 1 (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":"Sources/SWBUtil/ArgumentSplitting.swift"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"5499a034beeccdbf9b18c989af123e09a5d34aa0e2af0299cce8ec2ba2375de4"}},{"ruleId":"D2","level":"warning","message":{"text":"OperatingSystem.parseOSRelease (cognitive 21): OperatingSystem.parseOSRelease has cognitive complexity 21 (threshold 15). Drivers by points: if/else 9 (13 pts), match/switch 2 (5 pts), loops 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":"Sources/SWBUtil/ProcessInfo.swift"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6d51bc556642524af35d30918d1bdb5e5415da7471b6dbb213c7ed1156fefa3"}},{"ruleId":"D2","level":"warning","message":{"text":"ActiveBuild._run (cognitive 20): ActiveBuild._run has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15 (18 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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"009c0cba1ac01433e057cc1dc7d35386b34c1971dfcd4698a4038df2bac9007f"}},{"ruleId":"D2","level":"warning","message":{"text":"OperationSystemAdaptor.descriptionForBuildKey (cognitive 20): OperationSystemAdaptor.descriptionForBuildKey has cognitive complexity 20 (threshold 15). Drivers by points: if/else 11 (17 pts), boolean chains 2, match/switch 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2414}}}],"partialFingerprints":{"codehealthFindingId/v1":"451b9528dc389a206b7a8670b35e05334d6513a4c2cfb02e80c1899d942cf133"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyCycleFormatter.likelyCauseOfInTargetCycle (cognitive 20): DependencyCycleFormatter.likelyCauseOfInTargetCycle has cognitive complexity 20 (threshold 15). Drivers by points: if/else 9 (14 pts), boolean chains 6 (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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fbc34047cd20bf75e2f0d0caeff3ba82965949d9450437003ea9bc4775f35a7"}},{"ruleId":"D2","level":"warning","message":{"text":"LinkageDependencyResolver.linkageDependencies (cognitive 20): LinkageDependencyResolver.linkageDependencies has cognitive complexity 20 (threshold 15). Drivers by points: if/else 10 (14 pts), boolean chains 5, loops 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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"56059e25976ea52c088d6878e4286763cbc58906b7a57d22144cc59e8e4630a7"}},{"ruleId":"D2","level":"warning","message":{"text":"ServiceHostConnection.resume (cognitive 20): ServiceHostConnection.resume has cognitive complexity 20 (threshold 15). Drivers by points: if/else 8 (17 pts), error handling 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":"Sources/SWBServiceCore/ServiceHostConnection.swift"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"671da7ebd594a8add0bfb2e883f640216c5c57bc2b9a8e6b6117798e5ce9390a"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskProducerContext.willProduceBinary (cognitive 20): TaskProducerContext.willProduceBinary has cognitive complexity 20 (threshold 15). Drivers by points: if/else 12 (15 pts), boolean chains 5 (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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"298aa90b9eb6db504e95e7bc5f89f22e6cea50be7052483cb9947cc5f0b60c29"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildRuleTaskProducer.generateTasks (cognitive 20): BuildRuleTaskProducer.generateTasks has cognitive complexity 20 (threshold 15). Drivers by points: if/else 11 (13 pts), loops 3, boolean chains 2, match/switch 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1190f3dd167f94355a274890cd1c25e6c88c9fbe3eecd0bc82f2e21b477d9f5"}},{"ruleId":"D2","level":"warning","message":{"text":"CustomTaskProducer.generateTasks (cognitive 20): CustomTaskProducer.generateTasks has cognitive complexity 20 (threshold 15). Drivers by points: loops 6 (11 pts), if/else 3 (7 pts), ternaries 1 (2 pts) (nesting depth added 10). 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/CustomTaskProducer.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e83ee766c9b1b24ab9d6fed54e890b5509c0d26c4125b37629a6b29d1ac7d6b"}},{"ruleId":"D2","level":"warning","message":{"text":"ModuleVerifierTaskProducer.generateBuiltinModuleVerifierTasks (cognitive 20): ModuleVerifierTaskProducer.generateBuiltinModuleVerifierTasks has cognitive complexity 20 (threshold 15). Drivers by points: if/else 8 (13 pts), loops 4 (5 pts), error handling 1, ternaries 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f5e2ba4f6d59036f2c90d6ce9cfa4aaff53939556157ea41d429860bbf3539c"}},{"ruleId":"D2","level":"warning","message":{"text":"ModuleVerifierTaskProducer.collectModuleAffectingFiles (cognitive 20): ModuleVerifierTaskProducer.collectModuleAffectingFiles has cognitive complexity 20 (threshold 15). Drivers by points: if/else 6 (11 pts), loops 5 (8 pts), boolean chains 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":386}}}],"partialFingerprints":{"codehealthFindingId/v1":"259932af5d64d102a3574a37384043508aa789bad07c146184d8d2f90e1b9754"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 20): Options.init has cognitive complexity 20 (threshold 15). Drivers by points: if/else 8 (16 pts), match/switch 1 (2 pts), boolean chains 1, 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":"Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"313f107acfea83e660add8725ef2efe2e6539783e1e7187ba4834360afeaa00a"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskAction.defaultInfoPlistContent (cognitive 20): InfoPlistProcessorTaskAction.defaultInfoPlistContent has cognitive complexity 20 (threshold 15). Drivers by points: if/else 11 (13 pts), boolean chains 5, loops 2 (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."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":695}}}],"partialFingerprints":{"codehealthFindingId/v1":"c54483ce4bbb38d22d12727e8cf2365e7be6552de77cd6bb0cb6a055231c9f83"}},{"ruleId":"D2","level":"warning","message":{"text":"ProcessXCFrameworkTaskAction.validateExpectedSignature (cognitive 20): ProcessXCFrameworkTaskAction.validateExpectedSignature has cognitive complexity 20 (threshold 15). Drivers by points: if/else 5 (12 pts), boolean chains 4, error handling 2, loops 1 (2 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":"Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1bd3d960310701899d28bbf342acd56cfcac4e611cb7890a80044eb1a2cece6"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildResults.getDiagnosticMessage (cognitive 20): BuildResults.getDiagnosticMessage has cognitive complexity 20 (threshold 15). Drivers by points: if/else 5 (13 pts), boolean chains 4, match/switch 1 (2 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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":607}}}],"partialFingerprints":{"codehealthFindingId/v1":"edea5b8fb83df7f71663997a26d18bea4ea428f8977ac54d2437f952c3427577"}},{"ruleId":"D2","level":"warning","message":{"text":"PlanningResults.checkNoCycles (cognitive 20): PlanningResults.checkNoCycles has cognitive complexity 20 (threshold 15). Drivers by points: if/else 6 (12 pts), loops 5 (8 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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":524}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8ab0764a4c216874c0762fd7aa956aad00dadd299a8449e54b6160f42fde79c"}},{"ruleId":"D2","level":"warning","message":{"text":"ResponseFiles.tokenizeUnixShellQuotedResponseFileLine (cognitive 20): ResponseFiles.tokenizeUnixShellQuotedResponseFileLine has cognitive complexity 20 (threshold 15). Drivers by points: if/else 9 (17 pts), boolean chains 2, loops 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":"Sources/SWBUtil/ResponseFiles.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7d18647c4cca16fefcf9eebd086667fe45c1b0ad5b4a731b9c134cb955a5978"}},{"ruleId":"D2","level":"warning","message":{"text":"OpenCLCompilerSpec.constructTasks (cognitive 19): OpenCLCompilerSpec.constructTasks has cognitive complexity 19 (threshold 15). Drivers by points: if/else 6 (12 pts), loops 2 (3 pts), ternaries 2 (3 pts), boolean chains 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":"Sources/SWBApplePlatform/OpenCLCompiler.swift"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"d142da8916a0e4c44c660116d417a798c193646993b43f4912d577e934475d58"}},{"ruleId":"D2","level":"warning","message":{"text":"CleanOperation.build (cognitive 19): CleanOperation.build has cognitive complexity 19 (threshold 15). Drivers by points: if/else 12 (16 pts), boolean chains 2, error handling 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":"Sources/SWBBuildSystem/CleanOperation.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1715a66a3d7a8b0efc32c74c825e228759c5f9fcb1b5560b62d75d08b91021c"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildRequestContext.computeOutputPaths (cognitive 19): BuildRequestContext.computeOutputPaths has cognitive complexity 19 (threshold 15). Drivers by points: if/else 9 (13 pts), loops 1 (3 pts), boolean chains 2, ternaries 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":"Sources/SWBCore/BuildRequestContext.swift"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"c75aee2e12dc935eceee91a5ee70f1ff3525d21d9ab84f8fc5a745d955a23d99"}},{"ruleId":"D2","level":"warning","message":{"text":"Core.inferiorProductsPath (cognitive 19): Core.inferiorProductsPath has cognitive complexity 19 (threshold 15). Drivers by points: if/else 5 (13 pts), ternaries 1 (4 pts), loops 1 (2 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":"Sources/SWBCore/Core.swift"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"004ffe8797765132e28f1b0f6774f27753ff5f3ff3656baee5dd25aa611531fa"}},{"ruleId":"D2","level":"warning","message":{"text":"InfoPlistProcessorTaskActionContext.init (cognitive 19): InfoPlistProcessorTaskActionContext.init has cognitive complexity 19 (threshold 15). Drivers by points: if/else 12 (18 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":"Sources/SWBCore/PlannedTaskAction.swift"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"c528509fcd08824a12be949bc63265946996fb07406b6f84db324d0fdcbe882c"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildPhaseTarget.init (cognitive 19): BuildPhaseTarget.init has cognitive complexity 19 (threshold 15). Drivers by points: if/else 8 (16 pts), match/switch 1 (2 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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5a73a348fee020a6b8c03f6f5411127196703464848cfb932f266c44faff37a"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroConfigFileParser.parseMacroValueAssignment (cognitive 19): MacroConfigFileParser.parseMacroValueAssignment has cognitive complexity 19 (threshold 15). Drivers by points: if/else 9 (14 pts), boolean chains 3, loops 2 (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":"Sources/SWBMacro/MacroConfigFileParser.swift"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d26a19947930b689334d755410448845a5b95eb3299e6a84e5db8371ea9c712"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroNamespace.parseTable (cognitive 19): MacroNamespace.parseTable has cognitive complexity 19 (threshold 15). Drivers by points: if/else 9 (15 pts), match/switch 1 (3 pts), loops 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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"296d571eab85a1b6a3f6bd042cf450cda7dfa649f6b56eb1a606d14483db9cd3"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildSettings.serialize (cognitive 19): BuildSettings.serialize 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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b73a2d8d5b7e21ceaf50cb83bd3de8227bcc75027ee067a556fdf73150dc914"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescriptionManager.generatePreviewInfo (cognitive 19): BuildDescriptionManager.generatePreviewInfo has cognitive complexity 19 (threshold 15). Drivers by points: if/else 7 (11 pts), boolean chains 4, loops 2 (3 pts), error handling 1 (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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3674be28253b07d7c1681f6f9cf3a5a7c683980fabd3d8d89d064be8d6e081c"}},{"ruleId":"D2","level":"warning","message":{"text":"AuxiliaryFileTaskAction.performTaskAction (cognitive 19): AuxiliaryFileTaskAction.performTaskAction has cognitive complexity 19 (threshold 15). Drivers by points: if/else 6 (13 pts), error handling 2 (3 pts), match/switch 1 (2 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":"Sources/SWBTaskExecution/TaskActions/AuxiliaryFileTaskAction.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe681e1315bf5e4d8b9d3b9ecb3e74530a50fb58110656ca0cacebcf3140e203"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 19): Options.init has cognitive complexity 19 (threshold 15). Drivers by points: if/else 6 (11 pts), loops 2 (3 pts), match/switch 1 (2 pts), ternaries 1 (2 pts), boolean chains 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":"Sources/SWBTaskExecution/TaskActions/SwiftHeaderToolTaskAction.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"031f31c5915f5e4437fa70a9a6eb612fd88bb7fbd1fc8d2024dbc730fe0911b2"}},{"ruleId":"D2","level":"warning","message":{"text":"MutablePluginManager.loadPlugin (cognitive 19): MutablePluginManager.loadPlugin has cognitive complexity 19 (threshold 15). Drivers by points: if/else 8 (12 pts), ternaries 2 (4 pts), boolean chains 1, error handling 1, match/switch 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":"Sources/SWBUtil/PluginManager.swift"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"5985c588198f7111a6c6b54c5d558b8b496a478751a6babe8ce67d09d860d148"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildManager.enqueue (cognitive 18): BuildManager.enqueue has cognitive complexity 18 (threshold 15). Drivers by points: loops 3 (9 pts), if/else 4 (8 pts), match/switch 1 (nesting depth added 10). 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":"Sources/SWBBuildSystem/BuildManager.swift"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c5244ecadf5e115d5643d737c7f35770abef93b57cdfee2b2fc510096498b02"}},{"ruleId":"D2","level":"warning","message":{"text":"SuperimposedProperties.effectiveProperties (cognitive 18): SuperimposedProperties.effectiveProperties has cognitive complexity 18 (threshold 15). Drivers by points: if/else 5 (14 pts), loops 1 (3 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dcec158b0745ab6182b8c1ab3fba459c9588347960375b1f7e7a7a464894f7e"}},{"ruleId":"D2","level":"warning","message":{"text":"SpecializationParameters.init (cognitive 18): SpecializationParameters.init has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14 (16 pts), boolean chains 2 (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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"0379423428124026b2c70e3b7074f5af83fa97ea5d8efeaed04e1a15af6ec47d"}},{"ruleId":"D2","level":"warning","message":{"text":"SDKVariant.init (cognitive 18): SDKVariant.init has cognitive complexity 18 (threshold 15). Drivers by points: if/else 9 (11 pts), error handling 2 (3 pts), boolean chains 2, loops 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"19dcd24451a7488c9f245dc4f71562664af0624d444099a9ee2db581f736c8f5"}},{"ruleId":"D2","level":"warning","message":{"text":"XCFramework.rewriteCommandLine (cognitive 18): XCFramework.rewriteCommandLine has cognitive complexity 18 (threshold 15). Drivers by points: if/else 7 (14 pts), match/switch 1 (2 pts), boolean chains 1, loops 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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":775}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd48b77956eedb0d82545aff362e133d945470f03ea25ed58ee693c012a807a3"}},{"ruleId":"D2","level":"warning","message":{"text":"CoreSettings.unionedToolDefaults (cognitive 18): CoreSettings.unionedToolDefaults has cognitive complexity 18 (threshold 15). Drivers by points: if/else 4 (15 pts), loops 2 (3 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ad97f56e830a3bf3b7c0635bff27d52d3adf6a609c8ebf98e517c58d719e5dd"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkspaceSettings.builtinSettingsInfo (cognitive 18): WorkspaceSettings.builtinSettingsInfo has cognitive complexity 18 (threshold 15). Drivers by points: loops 4 (11 pts), if/else 3 (4 pts), error handling 1 (2 pts), match/switch 1 (nesting depth added 9). 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":408}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a4c145fe88f2d29ea9fab43914b691fa4028c469e9fe611322675580eb24ae1"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.resolveDiamondProblemsInPackages (cognitive 18): GlobalProductPlan.resolveDiamondProblemsInPackages has cognitive complexity 18 (threshold 15). Drivers by points: if/else 5 (12 pts), loops 3 (4 pts), boolean chains 2 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1056}}}],"partialFingerprints":{"codehealthFindingId/v1":"1381782e677bd0238893cad7daab867e54d822a18141d1098a5bc68b742789dc"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.expandedSearchPaths (cognitive 18): GlobalProductPlan.expandedSearchPaths has cognitive complexity 18 (threshold 15). Drivers by points: if/else 6 (12 pts), loops 2 (6 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1387}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff865e81a1465e71eb6d4536cc0f06a8c4b354551f96c0eba63384f04e1b1e82"}},{"ruleId":"D2","level":"warning","message":{"text":"CopyFilesTaskProducer.bundleFormat (cognitive 18): CopyFilesTaskProducer.bundleFormat has cognitive complexity 18 (threshold 15). Drivers by points: if/else 9 (11 pts), error handling 1 (3 pts), ternaries 1 (3 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec26d9f61db4a042189fc8ba3be3468036da71019084317877cc93c9ba52db19"}},{"ruleId":"D2","level":"warning","message":{"text":"SourcesPhaseBasedTaskGenerationDelegate.createTask (cognitive 18): SourcesPhaseBasedTaskGenerationDelegate.createTask has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10 (14 pts), loops 2, ternaries 1 (2 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"99e31ff59a9915f849c82959c7245244bf607375ce0f4c8d2466a31b10cf83d2"}},{"ruleId":"D2","level":"warning","message":{"text":"ClangModuleVerifierInputGeneratorTaskAction.performTaskAction (cognitive 18): ClangModuleVerifierInputGeneratorTaskAction.performTaskAction has cognitive complexity 18 (threshold 15). Drivers by points: if/else 6 (11 pts), error handling 5, boolean chains 1, loops 1 (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":"Sources/SWBTaskExecution/TaskActions/ClangModuleVerifierInputGeneratorTaskAction.swift"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"110558114b89847106f5ba6c5dcc9888460acb92731dc333bd86a53511845c2d"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 18): Options.init has cognitive complexity 18 (threshold 15). Drivers by points: if/else 8 (14 pts), match/switch 1 (2 pts), boolean chains 1, 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":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc0ebf3231d435085ed257b9eff6fa9cee856f7ff8d088e327d28db2a42cf0da"}},{"ruleId":"D2","level":"warning","message":{"text":"RunningTask.findSwiftLib (cognitive 18): RunningTask.findSwiftLib has cognitive complexity 18 (threshold 15). Drivers by points: if/else 7 (12 pts), loops 2 (3 pts), ternaries 1 (2 pts), boolean chains 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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":690}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca38305c839e14b29ad1a83884ae759d2a801c4bbabda9b0da232bec900e2602"}},{"ruleId":"D2","level":"warning","message":{"text":"LinkerTaskAction.deduplicatingSwiftASTPaths (cognitive 18): LinkerTaskAction.deduplicatingSwiftASTPaths has cognitive complexity 18 (threshold 15). Drivers by points: if/else 5 (9 pts), boolean chains 7, loops 2 (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":"Sources/SWBTaskExecution/TaskActions/LinkerTaskAction.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fdd87be59fa9508ffed34af4c55a302ce40dd60e1836c36aeda7a026b9e3972"}},{"ruleId":"D2","level":"warning","message":{"text":"Slice.buildVersions (cognitive 18): Slice.buildVersions has cognitive complexity 18 (threshold 15). Drivers by points: ternaries 3 (9 pts), if/else 4 (6 pts), match/switch 2 (3 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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1286}}}],"partialFingerprints":{"codehealthFindingId/v1":"beab48aea9154bb3cb7cf58ca7aad314a59eb2a817ec074dae2e947c91006fe5"}},{"ruleId":"D2","level":"warning","message":{"text":"Path.relativeSubpath (cognitive 18): Path.relativeSubpath has cognitive complexity 18 (threshold 15). Drivers by points: if/else 6 (11 pts), ternaries 3 (6 pts), boolean chains 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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd5bf08feea800ed21f7b1e75df45788aad25456137645217eb4476d951bfaf7"}},{"ruleId":"D2","level":"warning","message":{"text":"Scalar.escapedForC (cognitive 18): Scalar.escapedForC has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18. 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":"Sources/SWBUtil/String.swift"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"a657287a611e4098285334a8f50c7bae2a4c5affc4b3ed3f37ca9bd993e6aeb3"}},{"ruleId":"D2","level":"warning","message":{"text":"PlanningOperation.plan (cognitive 17): PlanningOperation.plan has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (7 pts), ternaries 2 (4 pts), boolean chains 3, loops 1 (2 pts), error handling 1 (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":"Sources/SWBBuildService/PlanningOperation.swift"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6e182853379e90c64410a83023c3e606e22bba09ae20d7b6fa0ad3a6ae59066"}},{"ruleId":"D2","level":"warning","message":{"text":"OperationSystemAdaptor.commandStarted (cognitive 17): OperationSystemAdaptor.commandStarted has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9 (11 pts), match/switch 1 (3 pts), boolean chains 2, loops 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2017}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f240cb6b2c6cc276435490d37cdd1913e4fa13716e1fbef2bc427358a089be6"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDependencyInfo.inputs (cognitive 17): BuildDependencyInfo.inputs has cognitive complexity 17 (threshold 15). Drivers by points: if/else 6 (10 pts), error handling 1 (3 pts), loops 2 (3 pts), boolean chains 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":"Sources/SWBCore/BuildDependencyInfo.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"c751ecb42ffc4fde5b896a4f81b8f4320522f6dca3f349c82f36c763e4148d9c"}},{"ruleId":"D2","level":"warning","message":{"text":"Core.init (cognitive 17): Core.init has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8 (13 pts), loops 1 (2 pts), match/switch 2 (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":"Sources/SWBCore/Core.swift"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"5121eb4f2d6e9f406f598538b4def7f5c900711e00bef82834d0bfbc9e6a0ca4"}},{"ruleId":"D2","level":"warning","message":{"text":"PlatformRegistry.loadExtendedInfo (cognitive 17): PlatformRegistry.loadExtendedInfo has cognitive complexity 17 (threshold 15). Drivers by points: if/else 6 (10 pts), error handling 2 (5 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":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":656}}}],"partialFingerprints":{"codehealthFindingId/v1":"52dcab195a55eecf7fb19cf822d7e0707e865ee4e4c7e2cd12fa92c2d3aeb062"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftModuleDependencyGraph.queryPlanningDependencies (cognitive 17): SwiftModuleDependencyGraph.queryPlanningDependencies has cognitive complexity 17 (threshold 15). Drivers by points: if/else 7 (12 pts), loops 2 (3 pts), match/switch 1 (2 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":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5f48a5472876aa3dd665092d6453777e0ac306c9cac3c97e0f9af5ebc93c013"}},{"ruleId":"D2","level":"warning","message":{"text":"SettingsBuilder.createScope (cognitive 17): SettingsBuilder.createScope has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8 (11 pts), boolean chains 6 (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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2052}}}],"partialFingerprints":{"codehealthFindingId/v1":"1da50435cd5169825d4d3419a9e310ccaaf1242786447fafc4870eaef00ad4f9"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroConfigFileParser.parsePreprocessorDirective (cognitive 17): MacroConfigFileParser.parsePreprocessorDirective has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10 (16 pts), match/switch 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":"Sources/SWBMacro/MacroConfigFileParser.swift"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"3efbe6bf723bc01cf83e419bacc866974e0ae7cc3ff00a1ed34415eb901cbd9b"}},{"ruleId":"D2","level":"warning","message":{"text":"ResourcesTaskProducer.addTasksForUngroupedFile (cognitive 17): ResourcesTaskProducer.addTasksForUngroupedFile has cognitive complexity 17 (threshold 15). Drivers by points: if/else 7 (9 pts), boolean chains 5, match/switch 1 (3 pts) (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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ResourcesTaskProducer.swift"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"675307f2aa1b9185c66a447a135c712bfca51fb90a596b8ea3670b9d70c19eff"}},{"ruleId":"D2","level":"warning","message":{"text":"WindowsDLLCopyTaskProducer.artifactBundleBuildFiles (cognitive 17): WindowsDLLCopyTaskProducer.artifactBundleBuildFiles has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (10 pts), boolean chains 3, loops 2 (3 pts), match/switch 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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/WindowsDLLCopyTaskProducer.swift"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"da8697c2448a1338dd3e733aba7453b82a101c883dbdfb00e08916dbee2f2410"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildDescriptionBuilder.construct (cognitive 17): BuildDescriptionBuilder.construct has cognitive complexity 17 (threshold 15). Drivers by points: if/else 4 (8 pts), error handling 3, loops 2 (3 pts), boolean chains 2, ternaries 1 (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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":672}}}],"partialFingerprints":{"codehealthFindingId/v1":"388e330a13d8c68d16c1433517f184227fa72e127a5f898de8790a86004857cd"}},{"ruleId":"D2","level":"warning","message":{"text":"ClangCachingKeyQueryTaskAction.performTaskAction (cognitive 17): ClangCachingKeyQueryTaskAction.performTaskAction has cognitive complexity 17 (threshold 15). Drivers by points: if/else 5 (11 pts), error handling 2 (3 pts), ternaries 1 (3 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":"Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"5101d8bf44703425fb3bc343b098f671273292f97a3e3e81cf0ae1974d9ece77"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 17): Options.init has cognitive complexity 17 (threshold 15). Drivers by points: if/else 7 (13 pts), match/switch 1 (2 pts), boolean chains 1, 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":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"adb9d625c91b988ae22d4ee81684821098d61782bc07606530527666630225c7"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 17): Options.init has cognitive complexity 17 (threshold 15). Drivers by points: if/else 7 (13 pts), match/switch 1 (2 pts), boolean chains 1, 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":"Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d3e7303413207af08ee017bac80a64cfa198353d610b36865aee614f1adf9bf"}},{"ruleId":"D2","level":"warning","message":{"text":"StaticArchive.machOs (cognitive 17): StaticArchive.machOs has cognitive complexity 17 (threshold 15). Drivers by points: if/else 4 (13 pts), loops 1 (2 pts), boolean chains 1, match/switch 1 (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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1531}}}],"partialFingerprints":{"codehealthFindingId/v1":"535619f0da0298901e9f176447b5f31c16ace8d1d3fad8872b291a7e399c3fdc"}},{"ruleId":"D2","level":"warning","message":{"text":"Core.initializeSpecRegistry (cognitive 16): Core.initializeSpecRegistry has cognitive complexity 16 (threshold 15). Drivers by points: loops 3 (6 pts), if/else 2 (5 pts), error handling 1 (4 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":"Sources/SWBCore/Core.swift"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"3844245132cc9f4c56595f1127a1caeadd269752e46c4694f111a0602834efe5"}},{"ruleId":"D2","level":"warning","message":{"text":"SpecializationParameters.init (cognitive 16): SpecializationParameters.init has cognitive complexity 16 (threshold 15). Drivers by points: if/else 9 (12 pts), boolean chains 2, ternaries 1 (2 pts) (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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":425}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2d7b482c970277c3de3ef04508828ea6eb3c335ac90edfa823fb82cb13950b3"}},{"ruleId":"D2","level":"warning","message":{"text":"LinkageDependencyResolver.implicitDependency (cognitive 16): LinkageDependencyResolver.implicitDependency has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10 (11 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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":380}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4eb51968398c38ec3acfdb44a884568e96c04ef9e0670d077345ee89f98fb6c"}},{"ruleId":"D2","level":"warning","message":{"text":"DependencyInfo.modify (cognitive 16): DependencyInfo.modify has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (11 pts), boolean chains 3, loops 2 (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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"32bd0cf960e53f25ca3b850a638b55365ff29ac46e042fb67baf836ebab60428"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildPhaseTarget.init (cognitive 16): BuildPhaseTarget.init has cognitive complexity 16 (threshold 15). Drivers by points: if/else 5 (13 pts), match/switch 1 (2 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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b54a07fc08efd4de28212b304c72167570904f068e71bdcde1f116ea0df0985"}},{"ruleId":"D2","level":"warning","message":{"text":"MacroValueAssignmentTable.init (cognitive 16): MacroValueAssignmentTable.init has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (9 pts), match/switch 2 (6 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":"Sources/SWBMacro/MacroValueAssignmentTable.swift"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e8ac0c63afaa1612b49811518c7bafbc6c096043b663ad552152aa4308538c3"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeSwiftMacroImplementationDescriptors (cognitive 16): GlobalProductPlan.computeSwiftMacroImplementationDescriptors has cognitive complexity 16 (threshold 15). Drivers by points: if/else 4 (10 pts), loops 3 (6 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":478}}}],"partialFingerprints":{"codehealthFindingId/v1":"61a563fcc73fbaf2fde0a52638d7e818b2e8ac5fb7683a17bfc4725776237bdb"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.computeTargetsWhichShouldBuildModulesInInstallAPI (cognitive 16): GlobalProductPlan.computeTargetsWhichShouldBuildModulesInInstallAPI has cognitive complexity 16 (threshold 15). Drivers by points: if/else 4 (8 pts), loops 2 (6 pts), boolean chains 2 (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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":561}}}],"partialFingerprints":{"codehealthFindingId/v1":"e12117557188ab673b1503b38da4b25a376ce0015cf7f9b5c844068f53ad911a"}},{"ruleId":"D2","level":"warning","message":{"text":"GlobalProductPlan.diagnoseInvalidDeploymentTargets (cognitive 16): GlobalProductPlan.diagnoseInvalidDeploymentTargets has cognitive complexity 16 (threshold 15). Drivers by points: if/else 5 (11 pts), loops 2 (3 pts), boolean chains 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1024}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0ca66d2b94f174d9e5519271a57a87ebb0a9ca4f62a986df28ad540d923ab60"}},{"ruleId":"D2","level":"warning","message":{"text":"BuildFilesProcessingContext.subsumeAdditionalFilesIfDesired (cognitive 16): BuildFilesProcessingContext.subsumeAdditionalFilesIfDesired has cognitive complexity 16 (threshold 15). Drivers by points: loops 3 (8 pts), if/else 2 (7 pts), boolean chains 1 (nesting depth added 10). 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"3068cbd91a9bc68b99573bdd54ec4a85bb0467168315e7cc620b3207d4d3ce06"}},{"ruleId":"D2","level":"warning","message":{"text":"FilesBasedBuildPhaseTaskProducerBase.addTasksForRule (cognitive 16): FilesBasedBuildPhaseTaskProducerBase.addTasksForRule has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (8 pts), error handling 1 (3 pts), ternaries 1 (3 pts), loops 1 (2 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":763}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a08948d4e501ceaf9de4c211f17b012597ce85b2451a5ef2908edbfdee13a43"}},{"ruleId":"D2","level":"warning","message":{"text":"FilesBasedBuildPhaseTaskProducerBase.sourceGenerationInputFiles (cognitive 16): FilesBasedBuildPhaseTaskProducerBase.sourceGenerationInputFiles has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8 (14 pts), boolean chains 1, 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":819}}}],"partialFingerprints":{"codehealthFindingId/v1":"53587826de93b711de82b915d4b475d332b1ce1955ba5a2623cc09734a345634"}},{"ruleId":"D2","level":"warning","message":{"text":"ProductPostprocessingTaskProducer.addCopyAsideTasks (cognitive 16): ProductPostprocessingTaskProducer.addCopyAsideTasks has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (9 pts), boolean chains 5, ternaries 1 (2 pts) (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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"95e0be0826463ed0d817c2f74a727e34a591f180480bdf9fffc49c60a5a3136d"}},{"ruleId":"D2","level":"warning","message":{"text":"SwiftABIBaselineGenerationTaskProducer.generateTasks (cognitive 16): SwiftABIBaselineGenerationTaskProducer.generateTasks has cognitive complexity 16 (threshold 15). Drivers by points: if/else 4 (9 pts), loops 2 (3 pts), match/switch 1 (3 pts), boolean chains 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"64d56cdd04f5eddc997f3bb00b19843b923dd3497b6e66725c3cf729c7ffe876"}},{"ruleId":"D2","level":"warning","message":{"text":"Options.init (cognitive 16): Options.init has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8 (11 pts), boolean chains 2, match/switch 1 (2 pts), loops 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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b622d70a37e2cb8e089f27d2c5c1afb126641aa13c3efe277bdbc88b2dba011"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandLineCheckable.checkCommandLineMatches (cognitive 16): CommandLineCheckable.checkCommandLineMatches has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (11 pts), match/switch 2 (4 pts), boolean chains 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":"Sources/SWBTestSupport/TasksCheckingResult.swift"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"e06838689e6164d77bdf2f4257e101e6a5100467bc2d437a5434339a17cfe170"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexStoreImpl.listTests (cognitive 16): IndexStoreImpl.listTests has cognitive complexity 16 (threshold 15). Drivers by points: loops 7 (13 pts), if/else 2 (3 pts) (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":"Sources/SWBUtil/IndexStore.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"e53eddc0c302d38a77e82199552c4157b1bb943d40ffc657f0ea6b7189bacbf9"}},{"ruleId":"D2","level":"warning","message":{"text":"Path.normalize (cognitive 16): Path.normalize has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (10 pts), boolean chains 2, match/switch 1 (2 pts), ternaries 1 (2 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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":604}}}],"partialFingerprints":{"codehealthFindingId/v1":"de65410843d7e47413013f54a0ea4cec0b0bfcafac112d7d0ed889a7cc0c1b71"}},{"ruleId":"D2","level":"warning","message":{"text":"InProcessConnection.start (cognitive 16): InProcessConnection.start has cognitive complexity 16 (threshold 15). Drivers by points: if/else 9 (12 pts), boolean chains 2, error handling 1 (2 pts) (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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":768}}}],"partialFingerprints":{"codehealthFindingId/v1":"21834839f8d78b65201bc6a638b60a672624e561ea095564de4214969db35bef"}},{"ruleId":"D2","level":"warning","message":{"text":"OutOfProcessConnection.init (cognitive 16): OutOfProcessConnection.init has cognitive complexity 16 (threshold 15). Drivers by points: if/else 5 (10 pts), loops 2 (4 pts), boolean chains 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":865}}}],"partialFingerprints":{"codehealthFindingId/v1":"55aa64a60fc1254d798d87a987de8595f4a23c5e639dbe543767f2c175bf0ea7"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BuildConfigurationFilter.matches: MethodTooLong \u2014 matches runs 767 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 667 over it, 7.67\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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"05f70be552ecc002f04247cb71bb67a559c4712b84765fc59699c7639095acf2"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Settings/Settings.swift: FileTooLong \u2014 3225 significant lines (blank, comment-only and punctuation-only lines excluded), about 79% of them inside a single declaration: SettingsBuilder (1211-6134). The bar is 500 significant lines; this is 2725 over it, 6.45\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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"85fe349fc39139381deda0c04b1e00917748fcf9d42047742491a8a348d9f60a"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: SettingsBuilder: ClassTooLong \u2014 2547 significant lines (blank, comment-only and punctuation-only lines excluded), 60 methods. The bar is 400 significant lines; this is 2147 over it, 6.37\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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1211}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e97d863d9b6ba739cf8157ffe5d11b76dc0087a5e5586afb90bbac2f2afbd7e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SourcesTaskProducer.generateTasks: MethodTooLong \u2014 generateTasks runs 572 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 472 over it, 5.72\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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":840}}}],"partialFingerprints":{"codehealthFindingId/v1":"a21bb591a9938d480769781552761503f501d45affc91dbabe67d250bccdb691"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Core.createTestingCore: MethodTooLong \u2014 createTestingCore runs 344 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 244 over it, 3.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":"Sources/SWBCore/Core.swift"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"449daeb5356bec77a060ed44979505af16239c24b9f4dbc2821b23dfaae50147"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SourcesTaskProducer.computeLibraries: MethodTooLong \u2014 computeLibraries runs 324 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 224 over it, 3.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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9d8b399639c7487e383fb97198f3f48d27c71261b9205faf3daccaa95c6c0e9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBBuildSystem/BuildOperation.swift: FileTooLong \u2014 1540 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 1040 over it, 3.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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f92130ceabefdb8d339ee9db3125a7649f1dd8a5434879fb2c8cdc2250972223"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SettingsBuilder.getCommonTargetTaskOverrides: MethodTooLong \u2014 getCommonTargetTaskOverrides runs 277 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 177 over it, 2.77\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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4374}}}],"partialFingerprints":{"codehealthFindingId/v1":"f80887b5697587d1885b63046b2fc8ec673fb0f15eefb90eaf23f2030548f037"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: BuildPhaseTaskProducers/SourcesTaskProducer.swift: FileTooLong \u2014 1370 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 870 over it, 2.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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"baadaa7987e381a7227a7a14dc5dbaf4799c90d771d4b03b663ce8a1870e0621"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBTestSupport/BuildOperationTester.swift: FileTooLong \u2014 1332 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 832 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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6e15b4854b4bd6908511e244eb5277548140bbc2b8ade81ae419840705b4c0d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TaskProducerContext: TooManyMethods \u2014 76 methods. The bar is 30 methods; this is 46 over it, 2.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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"15cf2add68d384f32cf733fafe014bf0e15cc13402bd45d31fc8bd93829fae02"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BuildDescription.construct: MethodTooLong \u2014 construct runs 250 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 150 over it, 2.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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1133}}}],"partialFingerprints":{"codehealthFindingId/v1":"cac006efced9fba24cb6fee9478c890f24557cff0d387404d5de454fd7aa23f2"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ActoolCompilerSpec.constructTasks: MethodTooLong \u2014 constructTasks runs 230 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 130 over it, 2.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":"Sources/SWBApplePlatform/AssetCatalogCompiler.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"71b8f044892f110b20508e81d990ca4e519a2f17c57ba60fea70926bdb472659"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CapturingTaskGenerationDelegate: TooManyMethods \u2014 65 methods. The bar is 30 methods; this is 35 over it, 2.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":"Sources/SWBTestSupport/CapturingTaskGenerationDelegate.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"4175f897de3938866651922188cbd0f283324819d3dcb64285403fe3bf0cd112"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: SWBBuildServiceSession: TooManyMethods \u2014 65 methods. The bar is 30 methods; this is 35 over it, 2.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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"42f2258da8490babb98ca24f67f2aa510a731dd40cca8fc6396bc635dff923ed"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: InfoPlistProcessorTaskAction: ClassTooLong \u2014 853 significant lines (blank, comment-only and punctuation-only lines excluded), 18 methods. The bar is 400 significant lines; this is 453 over it, 2.13\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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f9f6e8c771b4184b40b67c05cdee61ac5e8ff329b57ddaa2ee3ab42e3b34410"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: TargetDependencyResolver.computeGraph: MethodTooLong \u2014 computeGraph runs 208 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 108 over it, 2.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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a76b6cd515a43ac321568ad6ccabd9b132a58c3bd45d3b1b4fdf3b192dd6a3a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: OperationSystemAdaptor: TooManyMethods \u2014 61 methods. The bar is 30 methods; this is 31 over it, 2.03\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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1452}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fd76e2ab15cb77be9d19726fc38862a20457e06938bcd3f163ae5ba362a55a4"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SDKRegistry.registerSDK: MethodTooLong \u2014 registerSDK runs 202 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"29b39d4e1fae398af7841e4704e378891962e40f7c7d57581b3d9b2dac7d3208"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBBuildService/Messages.swift: FileTooLong \u2014 1007 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 507 over it, 2.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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed2a1f472cc49b06cb8d25a785261e15196f5d972bf67bb8126763d8caa9f502"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: SettingsBuilder: TooManyMethods \u2014 60 methods. The bar is 30 methods; this is 30 over it, 2.00\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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1211}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fd80354e82f3e72d36a49173449db8b860a1915b31a1ffda4abab7b657d2b64"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: TaskProducers/TaskProducer.swift: FileTooLong \u2014 999 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 499 over it, 2.00\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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d5b0b224d227adcf2058e53e700770883b8a3c4116a17f75387c69cb3cd37dd"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBUtil/MachO.swift: FileTooLong \u2014 994 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 494 over it, 1.99\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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3a9e3739f5df3251a736a5cd50b26acf467d077d6ebeda67543aa307318f397"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BuildOperation._build: MethodTooLong \u2014 _build runs 197 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":535}}}],"partialFingerprints":{"codehealthFindingId/v1":"019bc668a2944a3781a52f5c7170771ec05d7565a8cedd5a1daa655e9f38ee27"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift: FileTooLong \u2014 966 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 466 over it, 1.93\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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"21ad7102f43cceae386cb0975e39c89531dadb987806d164d0efae14c4a0adc1"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: PIF: ClassTooLong \u2014 767 significant lines (blank, comment-only and punctuation-only lines excluded), 0 methods. The bar is 400 significant lines; this is 367 over it, 1.92\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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"589bd6036be71f8e88043d7ca9d1800fdf3c7f8750fe149bebc214d213ff7bb0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: ProductPlanning/ProductPlan.swift: FileTooLong \u2014 956 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 456 over it, 1.91\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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a569500adab2f356b39ed4d283f0fb7c11b6305cdda9bd009533a1a2c6ee6450"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SourcesBuildPhase.init: MethodTooLong \u2014 init runs 186 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 86 over it, 1.86\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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"abece47342774b7c692d8018ba50dbf758ee36f8c829353290a2a40d977bcf1b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBTaskExecution/BuildDescription.swift: FileTooLong \u2014 926 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 426 over it, 1.85\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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"712228bf8b2f07386dedbefcf5b1442236c1a0c4385ea05c7fff7629f9775734"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CopyFilesTaskProducer.addTasksForUngroupedFile: MethodTooLong \u2014 addTasksForUngroupedFile runs 181 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"c92cbfc65b85850d4e2cb8e02b8e644e2df2be1733b124c961e0321d16d8c96e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: InfoPlistProcessorTaskAction.performTaskAction: MethodTooLong \u2014 performTaskAction runs 181 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4e2b77d8a6c8d8cee7fa7af9455da8526bc8981e03c7593f525313701d8620b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: TaskActions/InfoPlistProcessorTaskAction.swift: FileTooLong \u2014 894 significant lines (blank, comment-only and punctuation-only lines excluded), about 95% of them inside a single declaration: InfoPlistProcessorTaskAction (23-1628). The bar is 500 significant lines; this is 394 over it, 1.79\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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"10909cbb131ca58b8b0011b78e630af11ab52f1b58c3d5c7615d7452aed149a5"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBProjectModel/PIFGenerationModel.swift: FileTooLong \u2014 863 significant lines (blank, comment-only and punctuation-only lines excluded), about 89% of them inside a single declaration: PIF (22-1125). The bar is 500 significant lines; this is 363 over it, 1.73\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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3b2135c828de95d26db570da61f211196dc7678d076fb273bdac53fb97c9505"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBProtocol/Message.swift: FileTooLong \u2014 861 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 361 over it, 1.72\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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b40d53c923cf805b55423c5eec08dc4f4d61cdac211c7f3c67a574c238038f87"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: BuildSystemTaskPlanningDelegate: TooManyMethods \u2014 51 methods. The bar is 30 methods; this is 21 over it, 1.70\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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":734}}}],"partialFingerprints":{"codehealthFindingId/v1":"879fe79d589bd7997cd619ad3c5c334b83686b99f0b42dfc829a2cfeb113204f"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: OperationSystemAdaptor: ClassTooLong \u2014 676 significant lines (blank, comment-only and punctuation-only lines excluded), 61 methods. The bar is 400 significant lines; this is 276 over it, 1.69\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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1452}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b0f605c53026abf1a1512942cef56ef66f6524159d3a63e904428771171f9e9"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: PseudoFS: TooManyMethods \u2014 50 methods. The bar is 30 methods; this is 20 over it, 1.67\u00D7 the bar. Most of these members implement SWBUtil.FSProxy (36 of 47 members), so moving them onto a smaller type would remove them from that contract rather than reduce it. To reduce it, split the contract instead: give each cohesive group of operations its own smaller interface and its own implementing type. Where the contract has to stay whole, move the work behind these members into collaborator types, so what is left here is a forward per member rather than a responsibility per member."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":848}}}],"partialFingerprints":{"codehealthFindingId/v1":"e546e6655f481cf449d97330da4810e1cf0d5a665d87a55911baaa1d2065df1d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBUtil/FSProxy.swift: FileTooLong \u2014 811 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 311 over it, 1.62\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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"208dded870f6c3fcc59f4ae571b29fd0c62f80edf4886f56dce1e05ff5c1ec67"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SettingsBuilder.construct: MethodTooLong \u2014 construct runs 161 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1462}}}],"partialFingerprints":{"codehealthFindingId/v1":"949c8b0b031911fe9b3783da326bff69be22c280a8ca547cd1beb00dbbf1266e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBBuildService/BuildOperationMessages.swift: FileTooLong \u2014 787 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 287 over it, 1.57\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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1de8cdc6e6f8aaed2d9f843baccb1554d7c751dac85a8e85a41066a484facca9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBProtocol/BuildOperationMessages.swift: FileTooLong \u2014 766 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 266 over it, 1.53\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":"Sources/SWBProtocol/BuildOperationMessages.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"945451cf800e37b3c702d611960d6f7fed38fea378d4148a2291a8f7d779ec94"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBCore/XCFramework.swift: FileTooLong \u2014 748 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 248 over it, 1.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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b90e8f908783cfd6f8dc4ec88f5e2ab8043baa64f2c5da78263311dbfb9dbffa"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBTestSupport/TaskConstructionTester.swift: FileTooLong \u2014 736 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 236 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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"26b60c771b98760d8468ec8bc1a813c8eadbe77add0fa3d797f3a2318659c05c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: LocalFS: TooManyMethods \u2014 44 methods. The bar is 30 methods; this is 14 over it, 1.47\u00D7 the bar. Most of these members implement SWBUtil.FSProxy (37 of 41 members), so moving them onto a smaller type would remove them from that contract rather than reduce it. To reduce it, split the contract instead: give each cohesive group of operations its own smaller interface and its own implementing type. Where the contract has to stay whole, move the work behind these members into collaborator types, so what is left here is a forward per member rather than a responsibility per member."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"10dfde8b597b73167dce458de7d7563c9214c83a708a938308f31e1154c30fb8"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: TaskProducerContext: ClassTooLong \u2014 570 significant lines (blank, comment-only and punctuation-only lines excluded), 76 methods. The bar is 400 significant lines; this is 170 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"06625ef51c135c03b95e12ae1666a7818987ca22c3c307df5eadc666e1b458b8"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBCore/SDKRegistry.swift: FileTooLong \u2014 710 significant lines (blank, comment-only and punctuation-only lines excluded), about 63% of them inside a single declaration: SDKRegistry (522-1375). The bar is 500 significant lines; this is 210 over it, 1.42\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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5e5ba92746649fa45569edacde4fa2a8df072c51ee73f932f764526927b9b52"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SettingsBuilder.analyzeSettings: MethodTooLong \u2014 analyzeSettings runs 142 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5705}}}],"partialFingerprints":{"codehealthFindingId/v1":"95cc849d570c09b230f4907ccc593f93ddc93971ffb6e429e95e806e4dc80503"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: FilesBasedBuildPhaseTaskProducerBase.groupAndAddTasksForFiles: MethodTooLong \u2014 groupAndAddTasksForFiles runs 142 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"752d6aac53466f756f12a9828d4a9d8f54e8f98c10ff2cdc39cb2440fcce72ce"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SwiftDriverJobTaskAction.performTaskAction: MethodTooLong \u2014 performTaskAction runs 142 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fc0f84466d7a1d99a742ec3241cc743b60dcec938a9f124702a95fe35ff2b4b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBCore/TaskGeneration.swift: FileTooLong \u2014 653 significant lines (blank, comment-only and punctuation-only lines excluded). 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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d21f0517b68343cdd1815ae7abafe03113aab685defaf5dda97109814132e56"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SettingsBuilder.computeBoundProperties: MethodTooLong \u2014 computeBoundProperties runs 130 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1786}}}],"partialFingerprints":{"codehealthFindingId/v1":"21d631e127dfc3b5322e169f90abe26c8c92591312596251dbde526c800b09cc"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: InfoPlistProcessorTaskAction.parseConfiguration: MethodTooLong \u2014 parseConfiguration runs 130 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":378}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f620090a9f8fce5cc34a8a979fd909b6d15bc4a0aeefcd1846b21ce0e718c7c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBCore/DependencyResolution.swift: FileTooLong \u2014 648 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 148 over it, 1.30\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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ca8b300b3c60d07856c3c6a41ddb65f9df6d8e96ac81519bde77ba5f970c1b5"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: DependencyResolver.lookupConfiguredTarget: MethodTooLong \u2014 lookupConfiguredTarget runs 127 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":792}}}],"partialFingerprints":{"codehealthFindingId/v1":"8206212fa8f0eb739a3274d49b2d2842819e01ddb4a788fb807a367dba48e914"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: BuildResults: TooManyMethods \u2014 38 methods. The bar is 30 methods; this is 8 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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd6b02aaf9ebd05aeb9f73be1a8ac07f8fc0cb87e39634cb4b6bbe7eec7d9408"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBUtil/PropertyList.swift: FileTooLong \u2014 624 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 124 over it, 1.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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a58d7efac66d310ea0ec6491f11a6f280a1afa2f6e7766368741698e6292f0bf"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: SwiftBuildMessage: ClassTooLong \u2014 496 significant lines (blank, comment-only and punctuation-only lines excluded), 20 methods. The bar is 400 significant lines; this is 96 over it, 1.24\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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"5097bb26d2c9657a0134528ad5faacf92c66f9bcf298e0aaaa6271284702f807"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: XCTestProductPostprocessingTaskProducer.generateXCTRunnerTasks: MethodTooLong \u2014 generateXCTRunnerTasks runs 124 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/XCTestProductTypeTaskProducer.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"fca2d7686b84b0250089e92a9f4f7a6c16b72a9ed18a7670efcb9d630385eea0"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Path: 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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"c97e506a111b7c0c904b4bbff389970b9e393d68eb7a26cf15571189ac2888b9"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: RunningTask.init: MethodTooLong \u2014 init runs 123 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 23 over it, 1.23\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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f26c40cf706c95e42aa810d545be5b7fb28b8d8bc9e1807140a974042f4226f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: GenericCachingTaskAction.performTaskAction: MethodTooLong \u2014 performTaskAction runs 123 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 23 over it, 1.23\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":"Sources/SWBTaskExecution/TaskActions/GenericCachingTaskAction.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fa4b0eed093ea4c0878eb7c22732b0a58feea993893c238a9b55846c648564c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SettingsBuilder.getBuildPhaseTargetTaskOverrides: MethodTooLong \u2014 getBuildPhaseTargetTaskOverrides runs 120 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5071}}}],"partialFingerprints":{"codehealthFindingId/v1":"b77dad9b89fc8564c207400e0f0896870015b97f1db71a04c4386f7cfbea21c0"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: AppIntentsMetadataCompilerSpec.constructTasks: MethodTooLong \u2014 constructTasks runs 119 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBApplePlatform/AppIntentsMetadataCompiler.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ae8ff6de3cc6f9879df52949c9e08b54f41fef1d877a9d91e7082614ed70440"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SwiftBuild/SWBBuildServiceSession.swift: FileTooLong \u2014 593 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 93 over it, 1.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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"62c7f24779bd18a49ad5e9b307f395ee720c30f85992c411c0955427311286f0"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: SwiftDriverJobTaskAction: ClassTooLong \u2014 466 significant lines (blank, comment-only and punctuation-only lines excluded), 15 methods. 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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"83c043779671a75a350410ca5fb3296d5f6148a6c4c9e3bb4613ddfa0e2bda2e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBUtil/Path.swift: FileTooLong \u2014 582 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 82 over it, 1.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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"913d742b9d21cf28340ad43b01ec9988c1a0228d0e8ea96496582962b3fe0072"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BuildPlan.init: MethodTooLong \u2014 init runs 116 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"59016234b0db6d4350e26a99d2e4c8e00ff3007163898a259634017d5179a73b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: OtherTaskProducers/ProductPostprocessingTaskProducer.swift: FileTooLong \u2014 576 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 76 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7381b0d950f34ef229bed667015d2d3f93cc5e4e20416af833b5b45696946376"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: PlatformRegistry.registerPlatform: MethodTooLong \u2014 registerPlatform runs 115 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":441}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb8c2f1d420e750230837248e469fe47e9764b7d3ccfebeb2ab439fbcaec82a8"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SWBBuildOperation.handleMessage: MethodTooLong \u2014 handleMessage runs 115 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SwiftBuild/SWBBuildOperation.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e4d05260a4f02c2ae35499819413fe4e73f6a9db42a07a741e980e714387aba"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: Toolchain.init: MethodTooLong \u2014 init runs 114 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/ToolchainRegistry.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"bad6cd8c5eb7587e4bccfb75f47b6c08b67413223d8aee10ce8ae58a0debd4df"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SwiftPackageCopyFilesTaskProducer.buildFilesForPackages: MethodTooLong \u2014 buildFilesForPackages runs 114 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SwiftPackageCopyFilesTaskProducer.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"27933866b9755ff75cabc0b7f75fc05c4b6485ddfbefb6b04a444226e102947b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Core: TooManyMethods \u2014 34 methods. The bar is 30 methods; this is 4 over it, 1.13\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":"Sources/SWBCore/Core.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e5ee16ccf435045bc5c5a2193877e2eb8aa13eb5ea48b59d99ec9909b0e2768"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: SDKRegistry: ClassTooLong \u2014 447 significant lines (blank, comment-only and punctuation-only lines excluded), 14 methods. The bar is 400 significant lines; this is 47 over it, 1.12\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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":522}}}],"partialFingerprints":{"codehealthFindingId/v1":"3302bad50fd008b8ea7734b2014f34dc23a1caaad1521918a6f645091970594a"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ModuleVerifierTaskProducer.generateClangModuleVerifierTask: MethodTooLong \u2014 generateClangModuleVerifierTask runs 111 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f64890fa420ed473195019909509e4a9f2cc074cf84f365eece8b24cc8b9454"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: GlobalProductPlan: TooManyMethods \u2014 33 methods. The bar is 30 methods; this is 3 over it, 1.10\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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"88ac309360fc53cd43116d0dac31f460860f8d2f4b79e4aa45f02467e0745882"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SWBTaskExecution/BuildDescriptionManager.swift: FileTooLong \u2014 550 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 50 over it, 1.10\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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b52ad633180212047dbc6d6225fc4c3d842db5c215565669f86b45d3efdf6292"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: EmbedSwiftStdLibTaskAction: ClassTooLong \u2014 439 significant lines (blank, comment-only and punctuation-only lines excluded), 1 methods. The bar is 400 significant lines; this is 39 over it, 1.10\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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"4744d2bdbaae5c152055f3757e522c4cc9e9b4278b24f8d8436c540ac437ee45"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: MachO: ClassTooLong \u2014 438 significant lines (blank, comment-only and punctuation-only lines excluded), 5 methods. The bar is 400 significant lines; this is 38 over it, 1.10\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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d84856e683db139ae7e935b85f3081212fca9042d942a83d4d93ed6831dcba"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: GlobalProductPlan.checkForDiamondProblemsInPackageProductLinkage: MethodTooLong \u2014 checkForDiamondProblemsInPackageProductLinkage runs 109 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1108}}}],"partialFingerprints":{"codehealthFindingId/v1":"58eb1114704a78a0b62a01251d247a2fdcb7418e2585b53ebf6c3be898eb0f9f"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ModuleMapTaskProducer.generateTasks: MethodTooLong \u2014 generateTasks runs 108 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb5e9afd3c029a62ff84145683cd58ed5099331a0fb430ccb0c2d1c15a84374c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: SwiftBuild/SWBBuildServiceConnection.swift: FileTooLong \u2014 531 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 31 over it, 1.06\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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf453fec81147a6f768eed19a58e18c586f40c62324148485fe5294849c52392"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: TaskProducerContext.init: MethodTooLong \u2014 init runs 105 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"73dfa1f13caceca6fba8968128de5e7f3be29b69bc9b17e7a098203c2c98c39e"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: LegacySwiftCommandOutputParser.handleMessage: MethodTooLong \u2014 handleMessage runs 104 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/SwiftOutputParsing.swift"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"a58bb9d40af812f1db0628a61a3b02e2afd32d0a47aa8e3f8f58ae2f2ad21262"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: LibSwiftDriver/LibSwiftDriver.swift: FileTooLong \u2014 518 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 18 over it, 1.04\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":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9eca47828c0b4b78bdc52be5c740c72964abbb8e42e60b92696f6ba7b3f3b768"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: MacroNamespace: TooManyMethods \u2014 31 methods. The bar is 30 methods; this is 1 over it, 1.03\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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"1019903b2b5184d0e326fb99c95e90539049aa01bd8ff5801ce749b9fac12645"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: SWBBuildService: TooManyMethods \u2014 31 methods. The bar is 30 methods; this is 1 over it, 1.03\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":"Sources/SwiftBuild/SWBBuildService.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6f174a57cca95e35162a9b8bca2c564b2a6562b3aa7540f8109e6487a1fb127"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: CoreMLCompilerSpec.constructCoreMLCodeGenerationTasks: MethodTooLong \u2014 constructCoreMLCodeGenerationTasks runs 103 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"30889f62aeca50b8e604eb0e8e2c66c7eee5c1387c97007ad69327ccd297da7c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: MacroConfigFileLoader.loadSettingsFromConfig: MethodTooLong \u2014 loadSettingsFromConfig runs 103 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBCore/MacroConfigFileLoader.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b9ee658e39a176e0c07373e11c26a285e742c448deaa5821eb8fa279d5affa2"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: BuildRuleTaskProducer.generateTasks: MethodTooLong \u2014 generateTasks runs 103 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"33c9976271a433a820731e7ff330bfc89cf003ff781044d3eba01122b9a03a6c"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: ClangCompileTaskAction.performTaskAction: MethodTooLong \u2014 performTaskAction runs 101 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"49c64b11b6878bd136ec361f73033ab16e0d1199c5a9c395e8be9d656e85b90d"}},{"ruleId":"D3","level":"warning","message":{"text":"MethodTooLong: SWBServiceConsoleBuildCommand.perform: MethodTooLong \u2014 perform runs 101 significant lines (blank, comment-only and punctuation-only lines excluded) 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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1ca852aef78be38b8f07135ae3ff7c87a24a2c6888c79b83b7ce0964f2fed"}},{"ruleId":"D4","level":"warning","message":{"text":"Near-duplicate member pair (63 shared lines): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:51-222 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:236-353 \u2014 These two members are variants of one another: 63 of their lines are already reported as duplicated blocks below, spread through both bodies rather than gathered into one. Read them as a single construct written twice. The repair is at the members\u0027 grain \u2014 factor the shared pipeline into one implementation the two call with their differences as parameters or as an injected step, or, where the difference is systematic (sync against async, one transport against another), generate one from the other. Extracting the individual blocks below is not the same fix: it leaves the two bodies in place and the next edit still has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9aa1fbecb592983ce855c25c040f3fc4c42f3c5b003609379da0b6971110abb"}},{"ruleId":"D4","level":"warning","message":{"text":"Near-duplicate member pair (52 shared lines): Sources/SWBApplePlatform/CoreMLCompiler.swift:134-307 | Sources/SWBApplePlatform/IntentsCompiler.swift:124-258 \u2014 These two members are variants of one another: 52 of their lines are already reported as duplicated blocks below, spread through both bodies rather than gathered into one. Read them as a single construct written twice. The repair is at the members\u0027 grain \u2014 factor the shared pipeline into one implementation the two call with their differences as parameters or as an injected step, or, where the difference is systematic (sync against async, one transport against another), generate one from the other. Extracting the individual blocks below is not the same fix: it leaves the two bodies in place and the next edit still has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"627a93e4e7ea717c435e8b5c2846b5fd4c36c70be6b89fb3d2172e305dfc705b"}},{"ruleId":"D4","level":"warning","message":{"text":"Edited copy of a member (17 corresponding lines): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:491-508 | Sources/SwiftBuildTestSupport/TestBuildOperationDelegate.swift:26-45 \u2014 These two members are one piece of code written twice and then edited apart: 17 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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":491}}}],"partialFingerprints":{"codehealthFindingId/v1":"71ffdc6b359412a18a9eb589dde976a0ab57b54c994853c23695e9b72555da95"}},{"ruleId":"D4","level":"warning","message":{"text":"Edited copy of a member (37 corresponding lines): Sources/SWBCore/ProjectModel/Target.swift:350-389 | Sources/SWBCore/ProjectModel/Target.swift:391-449 \u2014 These two members are one piece of code written twice and then edited apart: 37 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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7ebae1415993ffec23631f7b10ed458d0bcb8d20eb06ce487a36e1c72565770"}},{"ruleId":"D4","level":"warning","message":{"text":"Edited copy of a member (30 corresponding lines): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:916-1006 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1008-1062 \u2014 These two members are one piece of code written twice and then edited apart: 30 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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"5906621f3420179e2ba2c644fff442513e2c3e8029bbca0cce3d43a3f83666e2"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (16 members, 50\u002B identical tokens): Sources/SWBCore/BuildRuleAction.swift:119-132 | Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:383-397 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:414-437 | Sources/SWBProtocol/MessageSupport.swift:189-210 | Sources/SWBProtocol/MessageSupport.swift:533-559 | Sources/SWBProtocol/PlanningOperationMessages.swift:97-118 | Sources/SWBProtocol/PlanningOperationMessages.swift:264-288 | Sources/SWBProtocol/ProjectModel/Project.swift:29-42 | Sources/SWBTaskExecution/BuildDescription.swift:616-667 | Sources/SWBTestSupport/TaskConstructionTester.swift:95-111 | Sources/SWBTestSupport/TestWorkspaces.swift:471-487 | Sources/SWBTestSupport/TestWorkspaces.swift:493-509 | Sources/SWBTestSupport/TestWorkspaces.swift:701-717 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift:267-296 | Sources/SwiftBuild/SWBPreviewSupport.swift:113-149 | Sources/SwiftBuild/SWBProvisioningTaskInputs.swift:131-151 \u2014 These 16 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 16 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 16 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/BuildRuleAction.swift"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5646e572ffa456c19826c80976d1fb293c90b62e483f32ed3b6065419bf920e"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (9 members, 50\u002B identical tokens): Sources/SwiftBuild/ProjectModel/BuildPhases.swift:268-273 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:290-295 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:312-317 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:334-339 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:358-366 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:398-414 | Sources/SwiftBuild/ProjectModel/References.swift:165-173 | Sources/SwiftBuild/ProjectModel/References.swift:257-265 | Sources/SwiftBuild/ProjectModel/Targets.swift:505-515 \u2014 These 9 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 9 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 9 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ProjectModel/BuildPhases.swift"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"41a0ba866717e8abd2574d15a74207566dbd464a29a027e8545c945e8ab8f95f"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (7 members, 50\u002B identical tokens): Sources/SWBAndroidPlatform/Plugin.swift:116-138 | Sources/SWBApplePlatform/PluginDCLT.swift:45-106 | Sources/SWBGenericUnixPlatform/Plugin.swift:100-128 | Sources/SWBQNXPlatform/Plugin.swift:56-68 | Sources/SWBQNXPlatform/Plugin.swift:82-144 | Sources/SWBUniversalPlatform/BareMetal.swift:19-31 | Sources/SWBWebAssemblyPlatform/Plugin.swift:34-46 \u2014 These 7 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 7 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 7 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ccac8a316dcd2a318702b857bb8804f9e402b14c8c32654a8637e585bd1da52"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (7 members, 50\u002B identical tokens): Sources/SWBBuildService/BuildDescriptionMessages.swift:160-192 | Sources/SWBBuildService/Messages.swift:748-831 | Sources/SWBBuildService/Messages.swift:840-868 | Sources/SWBBuildService/Messages.swift:950-983 | Sources/SWBBuildService/Messages.swift:992-1021 | Sources/SWBBuildService/Messages.swift:1096-1139 | Sources/SWBBuildService/Messages.swift:1318-1367 \u2014 These 7 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 7 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 7 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/BuildDescriptionMessages.swift"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bee031edd72412193793b5b6abbeaa796876de3b4953f8bf682399bbb5a5a08"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (5 members, 50\u002B identical tokens): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:90-199 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:74-164 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:44-113 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:138-230 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:89-176 \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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"06a3c0c984aeac09d7f0080bd0ddb2356dfc4b77941ab99656fc6a3f7a345d3d"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (5 members, 50\u002B identical tokens): Sources/SwiftBuild/ProjectModel/BuildPhases.swift:261-266 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:283-288 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:305-310 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:327-332 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:379-396 \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":"Sources/SwiftBuild/ProjectModel/BuildPhases.swift"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"76573572c23c71e23a65fe60fe780cb4c2fafe4d891c627f5c7c6ab6234bd607"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift:72-134 | Sources/SWBApplePlatform/EXUtil.swift:41-68 | Sources/SWBApplePlatform/EXUtil.swift:92-123 | Sources/SWBCore/SpecImplementations/Tools/AppShortcutStringsMetadataCompiler.swift:20-97 \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":"Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d6097f01c6aecdaece11c5bae3e690dd845d1b425a70c61c5f6ef619e921b3a"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBBuildService/Tools.swift:69-114 | Sources/SWBBuildService/Tools.swift:246-291 | Sources/SWBBuildService/Tools.swift:363-408 | Sources/SWBBuildService/Tools.swift:493-538 \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":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf3553f8371872172b94789f2f0db63cff68feaf2079402ed6848f823be3b0dc"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:880-957 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:959-1002 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1006-1077 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1079-1118 \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":880}}}],"partialFingerprints":{"codehealthFindingId/v1":"6896a4207d66d47d7d6e5fe44b6bb25882d838b2fdd2e2b07bc9fa6ef9434d3b"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift:28-50 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:124-188 | Sources/SWBTaskExecution/TaskActions/DeferredExecutionTaskAction.swift:24-37 | Sources/SWBTaskExecution/TaskActions/LSRegisterURLTaskAction.swift:23-62 \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":"Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"77d253abc1aed38ea423094ef7eabe21dce9c89fdef78933a4948989118585c8"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:51-67 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:40-54 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:112-124 | Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift:28-38 \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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcb97c437523163962ea0f0785d96eefe7e673bdeff7acad29b455a75f6ed4b2"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBTestSupport/BuildOperationTester.swift:346-353 | Sources/SWBTestSupport/BuildOperationTester.swift:660-666 | Sources/SWBTestSupport/TaskConstructionTester.swift:148-155 | Sources/SwiftBuildTestSupport/CoreQualificationTester.swift:176-183 \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"76b7bb051ab6428cda4b7d1ca8ba628eaae37b6a57633e7e40109e1fb6ab783a"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBTestSupport/LibraryGeneration.swift:53-94 | Sources/SWBTestSupport/LibraryGeneration.swift:97-200 | Sources/SWBTestSupport/LibraryGeneration.swift:244-301 | Sources/SWBTestSupport/LibraryGeneration.swift:306-361 \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":"Sources/SWBTestSupport/LibraryGeneration.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"18c7158b6cbd3c130ac1585bf4d883ecc87874541af712264d490a056714996a"}},{"ruleId":"D4","level":"warning","message":{"text":"Members sharing a duplicated core (4 members, 50\u002B identical tokens): Sources/SWBUtil/MachO.swift:1356-1390 | Sources/SWBUtil/MachO.swift:1392-1409 | Sources/SWBUtil/MachO.swift:1411-1428 | Sources/SWBUtil/MachO.swift:1430-1447 \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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1356}}}],"partialFingerprints":{"codehealthFindingId/v1":"75119399c9802ec3670b624fb341433527ba0a12c4ba39eece48b49241aedcf7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (41 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:888-928 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1014-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:888\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":888}}}],"partialFingerprints":{"codehealthFindingId/v1":"f333bd301f3321e2fdbd8608a78a221635dd8677079518aa44f4ddb11fd122b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (38 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:165-202 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:111-148 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 136 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:165\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad3f1c4cfec022573ac4191fc3b81b02984b4d08c39b72649636996d6da42bb0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (35\u201337 lines \u00D7 2): Sources/SWBCore/ProjectModel/Target.swift:353-387 | Sources/SWBCore/ProjectModel/Target.swift:410-446 \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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":353}}}],"partialFingerprints":{"codehealthFindingId/v1":"08e1378c4fe753d2c19be0f4166d69ca97ab4970eceb55c55e04d4739fadf3a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (33 lines \u00D7 2): Sources/SWBCore/Settings/Settings.swift:1062-1094 | Sources/SWBTestSupport/DummyCommandProducer.swift:80-112 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/Settings/Settings.swift:1062\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1062}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5a0c07d2d47ac4652fb121e599c775b6ca7116ad076d8a072ebcea516ce6d21"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30\u201331 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift:73-102 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift:150-180 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift:73\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift:103\u0060 calls \u0060evaluate\u0060, \u0060join\u0060, \u0060getBaselineFileName\u0060 and \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift:182\u0060 does not \u2014 after which the two agree again for 4 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftFrameworkABICheckerTaskProducer.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"d434f4e720d8e1ba7deffc99a16ab0bd5b4a855fddde848bfb600284c87cfd22"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30 lines \u00D7 3): Sources/SWBBuildService/Tools.swift:262-291 | Sources/SWBBuildService/Tools.swift:379-408 | Sources/SWBBuildService/Tools.swift:509-538 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildService/Tools.swift:262\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":262}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc3dbb694c5e19334ebd17b8fe3c06ab09d8f365c28c2474b6871be25d578bc7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:918-947 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1012-1041 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":918}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bce8507f7ab3398e0fa02ee486e57f54ef3f0d81b1e04427c078d1d199102e5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (29 lines \u00D7 4): Sources/SWBBuildService/Tools.swift:69-97 | Sources/SWBBuildService/Tools.swift:246-274 | Sources/SWBBuildService/Tools.swift:363-391 | Sources/SWBBuildService/Tools.swift:493-521 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildService/Tools.swift:69\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a62f269f393a4207970dc0c4f3f3396b621bc5e2ee9bd503fc0b45f330f3047"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (28 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:165-192 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:131-158 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:83-110 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:165\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"3559f707e4ba05740289255cf7da6433dfc0f0188f1e8f7e82a42f715645a938"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 2): Sources/SWBCore/ProjectModel/Workspace.swift:156-180 | Sources/SWBCore/ProjectModel/Workspace.swift:200-224 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/ProjectModel/Workspace.swift:156\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ProjectModel/Workspace.swift"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a192562e5bc2989a3e80721b1aefcd0951c60b150958eac939d0db4f2451b00"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): Sources/SWBApplePlatform/CoreMLCompiler.swift:281-303 | Sources/SWBApplePlatform/IntentsCompiler.swift:235-257 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 77 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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"b34565e271de9c5c26764bd39f04c19ba84e1a542449947a498a8b45f98c6bc1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19\u201322 lines \u00D7 4): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:175-194 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:141-160 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:93-111 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:207-228 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:175\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bc30629b539fe380c71ce21802e242da85124592d1952c3ccb9dc9caff50298"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): Sources/SWBUtil/MsgPack.swift:549-570 | Sources/SWBUtil/MsgPack.swift:590-611 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":549}}}],"partialFingerprints":{"codehealthFindingId/v1":"72f0c978d3ffa60060f5da3c3557e4677c39f5936e63706f3b11980726fe38e3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 3): Sources/SWBApplePlatform/AppIntentsMetadataTaskProducer.swift:28-48 | Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift:24-44 | Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift:100-120 \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":"Sources/SWBApplePlatform/AppIntentsMetadataTaskProducer.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"d96b69ef20a36d24fb38243db93e8d0eef1c48251ad6d030334a5dc13bfb2b34"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201320 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:434-450 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:458-472 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:520-539 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:434\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":434}}}],"partialFingerprints":{"codehealthFindingId/v1":"21d7114bdf081e52bb6fbbeec97cde8a90aaa305b6751a04115ae76d84181909"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18\u201320 lines \u00D7 2): Sources/SWBCore/PlatformRegistry.swift:450-469 | Sources/SWBCore/PlatformRegistry.swift:485-502 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/PlatformRegistry.swift:450\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":450}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb21b29a8b84adbbd8f785bcff0b59e2b24842e8dd40c3edb082e2613524569e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:964-983 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1084-1103 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:964\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":964}}}],"partialFingerprints":{"codehealthFindingId/v1":"a123300414ca1ac38a21bb78eae265428fe8c7c5be551947a2e9c497a9285d78"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u201319 lines \u00D7 2): Sources/SWBBuildService/DocumentationInfo.swift:49-56 | Sources/SWBBuildService/PreviewInfo.swift:115-133 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildService/DocumentationInfo.swift:49\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/DocumentationInfo.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac239b969d5daffbeaf15e1e255ef9414d4b9f37db0d5692d584ccbe148453b8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:50-68 | Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift:53-71 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:50\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"342d2a29bd7b574d99e9856b94da22ae6a8b9aba62c68391433c321fc8ba4e9e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201318 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:46-60 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:143-160 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:93-110 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift\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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:46\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fea8e9cd1c13acd0799537e9bbe88256b0168d0f8dc8770ef7368470b6d2d26"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): Sources/SWBCore/Settings/Settings.swift:1115-1132 | Sources/SWBCore/Settings/Settings.swift:1141-1158 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/Settings/Settings.swift:1115\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1115}}}],"partialFingerprints":{"codehealthFindingId/v1":"5575e16484160fc9bee9213c0da12b3e1ed8864e6269a132b31fce2705b2d225"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201318 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:456-467 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:483-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:456\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"acd8e4ebb6cbe82324bdaa769f7dd0d76370cf2c2fc7721d424e46089ce7a5d9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201318 lines \u00D7 2): Sources/SWBUtil/MsgPack.swift:181-198 | Sources/SWBUtil/MsgPack.swift:226-240 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/MsgPack.swift:181\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"4874c73b1c4b27efc8dc6295ed8ff880a5e6a28ee3bdaf3162b040957098ea5d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): Sources/SWBApplePlatform/CoreMLCompiler.swift:169-185 | Sources/SWBApplePlatform/IntentsCompiler.swift:161-177 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 77 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift:169\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The \u0060return\u0060 at the foot of the matched lines is the enclosing body\u0027s own terminal exit, not an early one: it moves with them unchanged, and each site calls the extracted unit from the position that \u0060return\u0060 occupied \u2014 no decision has to be handed back and re-acted on. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"b51994e9c46e72f1d2764e8569d2d903e27cb8829d8eaa4426f326f7ff20d184"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): Sources/SWBCore/Settings/CASOptions.swift:142-158 | Sources/SWBProtocol/BuildOperationMessages.swift:1075-1091 \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":"Sources/SWBCore/Settings/CASOptions.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d1befa2f3cce86d951631d30bca4f1e79e9e78e8e57850f31d1df81305b5ab9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift:279-295 | Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:1693-1709 \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4414f8bcaeccaeaba4191a90f00d2c6781703b017c2cf01658c008043bbcc82"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16\u201317 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:105-121 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:92-107 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:105\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"950fb77d8dbf33ab5f24b393888554a91b36ee2fd41c5ebebe6021120d7c7854"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:131-147 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:285-301 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:131\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:128\u0060 calls \u0060failure\u0060, \u0060invalidCommandError\u0060 and \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:283\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"2916ca72ec306446b78a66ce605fc994bebed4e93875b3998119a16545791dbd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:99-114 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:49-64 | Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift:52-67 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 4 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:99\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"0079e198a87faee596025d800b9c5d47fd9298cd07a84aba2a6febf48f56a78d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:186-201 | Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift:193-208 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 51 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:186\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"6979a065d900a8c04ea9495ebdbee5b9711f754cf581bd904f281154ee5c38f2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14\u201316 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:52-67 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:41-54 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcc6b977765c467ddecb3234c3eb1055dbe703d5521404a065e96c26b1afd124"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201316 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:224-238 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:184-199 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:224\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"17e001965dd70c8fd601f63c732a28bf623e8b52ceb13ce4191fc88efb3896f9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:175-190 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:124-139 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 4 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:175\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbd7dc27b513c35c6b60d6c954a475b44b4186adb1ed67fe0421fc749d31cc32"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): Sources/SWBUtil/HashContext.swift:85-100 | Sources/SWBUtil/HashContext.swift:126-141 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/HashContext.swift:85\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/HashContext.swift"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"3757d45d8fe294a7b24cd6060c795598a0c7fa98610764832f244b2e1d30486c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201316 lines \u00D7 2): Sources/SWBUtil/MsgPack.swift:159-174 | Sources/SWBUtil/MsgPack.swift:284-298 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/MsgPack.swift:159\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SWBUtil/MsgPack.swift:299\u0060 calls \u0060UInt8\u0060 and \u0060Sources/SWBUtil/MsgPack.swift:175\u0060 does not \u2014 after which the two agree again for 3 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f3ddbcd0f5ebdb9d00c5e6901fe6e86f99c614181fb70f5db150cb532197f56"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): Sources/SWBUtil/Serialization.swift:628-643 | Sources/SWBUtil/Serialization.swift:661-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":"Sources/SWBUtil/Serialization.swift"},"region":{"startLine":628}}}],"partialFingerprints":{"codehealthFindingId/v1":"f70b2f5b8fc4521ad98d3948f5ef152a3cbe93f997c2fe369752dbddba6f5151"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 5): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:179-193 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:145-159 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:97-111 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:211-227 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:158-173 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:154\u0060 calls \u0060Path\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:207\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fc2d7e5f79da4da8f5151b257cb5a6caf23328d4f88619b99d8925915fb213a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13\u201315 lines \u00D7 4): Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift:102-115 | Sources/SWBTestSupport/TestWorkspaces.swift:175-189 | Sources/SWBTestSupport/TestWorkspaces.swift:243-255 | Sources/SWBTestSupport/TestWorkspaces.swift:283-295 \u2014 there are 4 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 4 sites; resolving a subset leaves the remainder to drift apart. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift:102\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"afbab560cdd38ce5538c51a6f8a5dfa6c9cab5f1927352c086e520444a92af10"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9\u201315 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:184-198 | Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift:191-205 | Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift:187-195 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 51 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:184\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"04f4c6a983cd0d1f103b73eb7937dfdb4a10bd8ef8700e974fbf653a371089bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift:57-71 | Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift:139-153 \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":"Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ed6aa602df590108ccfd689a19b27238d7a6d8de143a353373ea522e5bea0f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBBuildSystem/BuildOperation.swift:722-736 | Sources/SWBBuildSystem/BuildOperation.swift:761-775 \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":722}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ea51d2e97945c1b5638ede16dea7ba9b2e58237c4fbf1188d9b7ccf05e10d6b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:645-659 | Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:670-684 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:645\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:644\u0060 calls \u0060resolveArgumentList\u0060 and \u0060Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:669\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":645}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c3e9e58952803092603d53599a95adf2c2b9e7f90bcc6947871383ab8fd90c4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBCore/ToolchainRegistry.swift:231-245 | Sources/SWBCore/ToolchainRegistry.swift:248-262 \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":"Sources/SWBCore/ToolchainRegistry.swift"},"region":{"startLine":231}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8dc25d9ee75bccd094c3ccb4bd51f67fbc22818bdd5eb431286e3d7a2506486"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBMacro/MacroNamespace.swift:497-511 | Sources/SWBMacro/MacroNamespace.swift:519-533 \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. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":497}}}],"partialFingerprints":{"codehealthFindingId/v1":"53ece2c0b6e479a2e706dce903aba716a4cecc0056289ff51446996a619fd280"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13\u201315 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:991-1005 | Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:1416-1428 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:991\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":991}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb4e9f8fecf6d8d11a8a27720d88ef96c2dd089e673f4d8198e02d34c79bed40"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift:45-59 | Sources/SWBTaskExecution/TaskActions/ClangCachingOutputMaterializerTaskAction.swift:45-59 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift:45\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"94fe43ad4f0d152895a8e90b43c09c4f868e5dad2338f36a18d9ab99b42eb822"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift:308-322 | Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift:358-372 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift:308\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":308}}}],"partialFingerprints":{"codehealthFindingId/v1":"55cfd044785fd4ae7ac9d10f68dd4acada4a7ac34bef30e8e0fe6a28aca14244"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): Sources/SWBUtil/MsgPack.swift:501-516 | Sources/SWBUtil/MsgPack.swift:660-674 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/MsgPack.swift:501\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":501}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b8c2c7360b5b17fbc444506a6f4e6a52e1855cc329e27a271a226560a3a38c4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 4): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:921-934 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:976-989 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1047-1060 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1096-1109 \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. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:992\u0060 calls \u0060addTBDSymlinkTasks\u0060 and \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift:1111\u0060 does not \u2014 after which the two agree again for 3 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":921}}}],"partialFingerprints":{"codehealthFindingId/v1":"b13578cdcedc37ad4d744c7695750b632bfc9b7e4a48e12cd1f6558a8e7c033b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 4): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:412-428 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:438-451 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:460-473 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:524-540 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:412\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"8250cee3b330b2d04caddc7217b819a98db1465d22abd1279ab5a77adf6f5e44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): Sources/SWBCore/PlatformRegistry.swift:288-301 | Sources/SWBCore/PlatformRegistry.swift:309-322 | Sources/SWBCore/PlatformRegistry.swift:332-345 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060considerTargetDeviceOSVersion\u0060 to \u0060Bool = true\u0060 in one and \u0060Bool\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":288}}}],"partialFingerprints":{"codehealthFindingId/v1":"60d77f64ff33ca1247d6b3dace971aadbb2f03ff95a24815f3e4f3e7f9c219fe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): Sources/SWBMacro/MacroEvaluationScope.swift:204-217 | Sources/SWBMacro/MacroEvaluationScope.swift:237-250 | Sources/SWBMacro/MacroEvaluationScope.swift:268-281 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBMacro/MacroEvaluationScope.swift:204\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"7efcab0b009bee53e92a34bec1814db38fbb517a734c4ca45ac8e09843887562"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (1\u201314 lines \u00D7 3): Sources/SWBApplePlatform/CoreDataCompiler.swift:77-90 | Sources/SWBApplePlatform/CoreMLCompiler.swift:249-249 | Sources/SWBApplePlatform/IntentsCompiler.swift:208-221 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreDataCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 30 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/CoreDataCompiler.swift:77\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it. The \u0060return\u0060 at the foot of the matched lines is the enclosing body\u0027s own terminal exit, not an early one: it moves with them unchanged, and each site calls the extracted unit from the position that \u0060return\u0060 occupied \u2014 no decision has to be handed back and re-acted on. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/CoreDataCompiler.swift"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e116b1097a6d1b57427ef76066fcf6da3f38b44c660c57d747e88cf7484e7a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): Sources/SWBBuildService/Tools.swift:319-332 | Sources/SWBBuildService/Tools.swift:436-449 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildService/Tools.swift:319\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"01cd4bbf87aa669dccf4e1990f6db09a4aed7d13427695bdad50788216fb642f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): Sources/SWBBuildSystem/DependencyCycleFormatter.swift:302-315 | Sources/SWBBuildSystem/DependencyCycleFormatter.swift:547-560 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildSystem/DependencyCycleFormatter.swift:302\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":302}}}],"partialFingerprints":{"codehealthFindingId/v1":"514b84d695924853ff58db77f56d6e47a1d79e563f5518bb738e4e80ee37bbb2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:128-141 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:117-130 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:128\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"07bdb18240aff00cf9041938e6cdd7eadfe03b047128749ac6be5257aedcde10"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift:43-56 | Sources/SWBTaskExecution/TaskActions/SwiftCachingOutputMaterializerTaskAction.swift:45-58 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift:43\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2eeaf4f7221a5f61f545d83caca0f076945e19e2f2e89058877ae436f77b57a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): Sources/SWBTestSupport/TaskConstructionTester.swift:244-257 | Sources/SWBTestSupport/TaskConstructionTester.swift:287-300 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/TaskConstructionTester.swift:244\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"708b05b0e6e813efaf2c7ccd95d80b96d2491d7cf66b4b3bb9779d426e184a3b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 5): Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift:98-114 | Sources/SWBTestSupport/TestWorkspaces.swift:176-188 | Sources/SWBTestSupport/TestWorkspaces.swift:210-222 | Sources/SWBTestSupport/TestWorkspaces.swift:242-254 | Sources/SWBTestSupport/TestWorkspaces.swift:282-294 \u2014 there are 5 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 5 sites; resolving a subset leaves the remainder to drift apart. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"9633b60d50483f7d32e4bd45557b1110fa6e7068cc015c15f418152d2bc9c061"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 4): Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:49-61 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:146-161 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:96-111 | Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift:52-64 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift\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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:49\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"559449a971fc150769e2fba7351b74d15663e581bb9619400114ae94f12fa3e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): Sources/SWBQNXPlatform/Plugin.swift:56-68 | Sources/SWBUniversalPlatform/BareMetal.swift:19-31 | Sources/SWBWebAssemblyPlatform/Plugin.swift:34-46 \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":"Sources/SWBQNXPlatform/Plugin.swift"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbd6629004d7d7fd806a0fab6fd93aa0956dd6c509a509abaddbeefe00d2b5dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift:117-129 | Sources/SWBCore/SpecImplementations/Tools/AppShortcutStringsMetadataCompiler.swift:80-92 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift:117\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"a18a9ecd0add6ef102a1ae38ed4723718a092963fe35f76e41b68bf7a2d91343"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBApplePlatform/AssetCatalogCompilerOutputParser.swift:23-35 | Sources/SWBApplePlatform/InterfaceBuilderCompilerOutputParser.swift:24-36 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/AssetCatalogCompilerOutputParser.swift:23\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/AssetCatalogCompilerOutputParser.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"26b29743a3c4befa82d2197aaefc3e919a7c13fdc6a4951dad6db909284ad559"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBBuildService/PlanningOperation.swift:323-335 | Sources/SWBBuildService/PlanningOperation.swift:362-374 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildService/PlanningOperation.swift:323\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/PlanningOperation.swift"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"93082598e017f1586d28024505794ac72a9ce4eb17704458bb7ace9c297642b7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBCAS/ToolchainCASPlugin.swift:192-204 | Sources/SWBCAS/ToolchainCASPlugin.swift:293-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCAS/ToolchainCASPlugin.swift:192\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCAS/ToolchainCASPlugin.swift"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"47c65a71f4a0dd3ff099117369588a1f46b0422b29b3125b6cb3367f70bd4e55"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201313 lines \u00D7 2): Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:354-365 | Sources/SWBTaskExecution/DynamicTaskSpecs/ClangModuleDependencyGraph.swift:643-655 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:354\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":354}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ad5d95417e18a5fdf3c41302481d5eef462ef6a1d2140e1c19a30cf83df7cbf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:367-379 | Sources/SWBTaskExecution/DynamicTaskSpecs/ClangModuleDependencyGraph.swift:660-672 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:367\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":367}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b68c82529fa23bdd0b218c86f4146bcf896cc1a50436a6878629a7df20e91cf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBProtocol/MessageSupport.swift:84-96 | Sources/SwiftBuild/SWBBuildRequest.swift:118-130 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProtocol/MessageSupport.swift:84\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/MessageSupport.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"d997637777fc18231ddab5939ffda4795d55e46ca304507e5fcb4dfc5a9886ab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift:79-91 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/CopySwiftPackageResourcesTaskProducer.swift:25-37 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift:79\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"f59a2c7b82ad33cf148e2f61a1da01ce5893b576649013d621b38fd806e20fd4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift:342-354 | Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift:273-285 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift:342\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobSchedulingTaskAction.swift"},"region":{"startLine":342}}}],"partialFingerprints":{"codehealthFindingId/v1":"45eb6646219446bc56262efd781f4f90ca999a92fa64211f9b0ebc1bcc7dedbd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SWBTestSupport/BuildOperationTester.swift:325-337 | Sources/SWBTestSupport/TaskConstructionTester.swift:127-139 \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. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBTestSupport/TaskConstructionTester.swift:124\u0060 calls \u0060filterDiagnostic\u0060, \u0060formatLocalizedDescription\u0060 and \u0060Sources/SWBTestSupport/BuildOperationTester.swift:324\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cb336d70aae8f4277aefed468b129b0015a7a577998578670a6790bf666153c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:80-92 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:258-270 \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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"72e1fab02c5951bbe57b7dd6b45e61c81d494e5797d11edd58ef28ec4fd972b5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 14): Sources/SWBCore/BuildRuleAction.swift:121-132 | Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:386-397 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:426-437 | Sources/SWBProtocol/MessageSupport.swift:199-210 | Sources/SWBProtocol/MessageSupport.swift:548-559 | Sources/SWBProtocol/PlanningOperationMessages.swift:107-118 | Sources/SWBProtocol/PlanningOperationMessages.swift:277-288 | Sources/SWBProtocol/ProjectModel/Project.swift:31-42 | Sources/SWBTestSupport/TaskConstructionTester.swift:100-111 | Sources/SWBTestSupport/TestWorkspaces.swift:476-487 | Sources/SWBTestSupport/TestWorkspaces.swift:498-509 | Sources/SWBTestSupport/TestWorkspaces.swift:706-717 | Sources/SwiftBuild/SWBPreviewSupport.swift:138-149 | Sources/SwiftBuild/SWBProvisioningTaskInputs.swift:140-151 \u2014 there are 14 copies across 10 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 14 sites; resolving a subset leaves the remainder to drift apart. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/BuildRuleAction.swift:121\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060dependencyInfo\u0060 to \u0060DependencyInfoFormat?\u0060 in one and \u0060SWBProtocol.DependencyInfo? = nil\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/BuildRuleAction.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b2c874bb820527d00f2cbf7b10f277c5b42712cbd314515f480361894876f84"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 5): Sources/SWBProtocol/MessageSupport.swift:546-557 | Sources/SWBProtocol/PlanningOperationMessages.swift:265-276 | Sources/SWBTaskExecution/BuildDescription.swift:642-653 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift:282-293 | Sources/SwiftBuild/SWBPreviewSupport.swift:131-142 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere all 5 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 5 times. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProtocol/MessageSupport.swift:546\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift:294\u0060 calls \u0060Set\u0060 and \u0060Sources/SWBProtocol/MessageSupport.swift:558\u0060 does not \u2014 after which the two agree again for 3 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/MessageSupport.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"61b591eec325ca58a041f29565761fb4a9ea6115e53c042093a629b698acc090"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201312 lines \u00D7 3): Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift:124-134 | Sources/SWBApplePlatform/EXUtil.swift:58-68 | Sources/SWBApplePlatform/EXUtil.swift:112-123 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift:124\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2b3c0dbd78692741ba5ed6abfd76707f4aa0c580f090f62763500f138aa1cb5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:123-134 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:174-187 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:120-133 \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 all 3 call sites, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:123\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0cbc6ab5e5e76f7453fa18b2f9999d84eda3a7297f375c59fc46b2a401d6c62"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): Sources/SWBUtil/MachO.swift:1393-1404 | Sources/SWBUtil/MachO.swift:1412-1423 | Sources/SWBUtil/MachO.swift:1431-1442 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1393}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cc465f851823674c35e9eecc81724b7d165ca029f17dd6ce39676f3b0a24a3f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201312 lines \u00D7 2): Sources/SWBApplePlatform/CoreMLCompiler.swift:157-167 | Sources/SWBApplePlatform/IntentsCompiler.swift:149-160 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 77 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift:157\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad828908674e33ded59e8bad77681599daf7bc350a5ce1e6501cc88de16b49dc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBApplePlatform/DevelopmentAssetsTaskProducer.swift:19-30 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/DevelopmentAssetsTaskProducer.swift:18-29 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/DevelopmentAssetsTaskProducer.swift\u0060 and \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/DevelopmentAssetsTaskProducer.swift\u0060 as WHOLE FILES: 100% of the shorter file\u0027s lines also appear in the other, so this reads as one file having been copied from the other rather than as a helper waiting to be extracted. The 1 duplicated block(s) this scan matched between them are fragments of that copy, not the extent of it \u2014 treat the file pair as the unit. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/DevelopmentAssetsTaskProducer.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"e317ea28ce0ff9f33785418792d44e3d5adcd1f8bb36b5156e88340de949d15d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBCore/Settings/Settings.swift:5112-5123 | Sources/SWBTaskConstruction/StaleFileRemovalContext.swift:76-87 \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5112}}}],"partialFingerprints":{"codehealthFindingId/v1":"b28b9be5c8476a312ededd99228c7e4f22c7b80c1aed73c8860ff5f8aeb85016"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBProtocol/MessageSupport.swift:394-405 | Sources/SwiftBuild/SWBBuildParameters.swift:98-109 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProtocol/MessageSupport.swift:394\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/MessageSupport.swift"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"0adca864b910bb9e39281520b2ae2488a94f8a58646a8b19ee499489f35ac5bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellBasedTaskProducer.swift:75-86 | Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellBasedTaskProducer.swift:93-104 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellBasedTaskProducer.swift:75\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellBasedTaskProducer.swift"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"625ada4dda15de1a05e709c4d62342ced324d5884de49150447827282aeba20a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift:50-61 | Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift:106-117 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift:50\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb59e42cc66aa0ba23bde1fea9cd44a1d5ac677fc819f1d0a961439917ae6ff3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1283-1294 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1297-1308 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1283}}}],"partialFingerprints":{"codehealthFindingId/v1":"089227ac64a20782022d20dae2583dbf8e60fe0739a9d89388ee4db877505882"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift:39-50 | Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift:67-78 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift:39\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb89b1301f848fd0f4c20c7c700e9190bc1d2ba92803386fd8f9edd6a6188760"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBUtil/PluginManager.swift:181-192 | Sources/SWBUtil/PluginManager.swift:222-233 \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":"Sources/SWBUtil/PluginManager.swift"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"13e06f29eb109825f83f6dccdb7f57f028aafea73d918eb4eb2a23d86d1c3e67"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 5): Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift:98-111 | Sources/SWBTestSupport/TestWorkspaces.swift:198-208 | Sources/SWBTestSupport/TestWorkspaces.swift:210-220 | Sources/SWBTestSupport/TestWorkspaces.swift:242-252 | Sources/SWBTestSupport/TestWorkspaces.swift:282-292 \u2014 there are 5 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 5 sites; resolving a subset leaves the remainder to drift apart. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6703f370728fbb1ca889662a6051a4bfb21b5d3153cab1a3ccbddba862716e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9\u201311 lines \u00D7 4): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:51-59 | Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift:40-48 | Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:112-122 | Sources/SWBTaskExecution/TaskActions/SignatureCollectionTaskAction.swift:28-36 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 141 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:51\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed432b1733c4b82495927a75e63a047a59fb6c291cb2a14c15ef83fd921802d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): Sources/SWBApplePlatform/AppIntentsMetadataTaskProducer.swift:98-108 | Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift:59-69 | Sources/SWBApplePlatform/ExtensionPointExtractorTaskProducer.swift:141-151 \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":"Sources/SWBApplePlatform/AppIntentsMetadataTaskProducer.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"a27b3827c70e8aa72bb7c5dff9c99469b0d248af65d46daf3c92a034a6e23492"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): Sources/SWBCore/SDKRegistry.swift:844-854 | Sources/SWBCore/SDKRegistry.swift:857-867 | Sources/SWBCore/SDKRegistry.swift:870-880 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SDKRegistry.swift:844\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":844}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4755ccd210457d88961f1a333e18801c10b0b2bcdc5156db534a582644d6572"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): Sources/SWBCore/ToolchainRegistry.swift:209-219 | Sources/SWBCore/ToolchainRegistry.swift:232-242 | Sources/SWBCore/ToolchainRegistry.swift:249-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/ToolchainRegistry.swift:209\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ToolchainRegistry.swift"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ed77c81becc490b97ffba2880686621ccba9f33d8a1a3bc567cf80f2029db2d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:244-254 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:184-195 | Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift:159-169 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 136 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:244\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"93943be545a4e9ee0b04b9e9d3ab9cc2a2decd9d37a04702c8d2225a87e537fd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBBuildService/BuildServiceEntryPoint.swift:107-117 | Sources/SWBTestSupport/CoreTestSupport.swift:129-139 \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":"Sources/SWBBuildService/BuildServiceEntryPoint.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"cddcc7ca6e5574eadc5ddf435ba9e8f9ce54296225f1a34bcc87fb0f866aa8d5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBBuildSystem/BuildOperation.swift:2490-2500 | Sources/SWBBuildSystem/BuildOperation.swift:2503-2513 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2490}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a1b2fb8b9703e1947eb5ecbaabdd76afc6419254dd609946781342597de912e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBCore/LinkageDependencyResolver.swift:469-479 | Sources/SWBCore/LinkageDependencyResolver.swift:498-508 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/LinkageDependencyResolver.swift:469\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc412ec0e54d446cb80b394878cc19778f1bcf4be5a84fed782de048fec61a98"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3708-3718 | Sources/SWBCore/ToolInfo/ClangToolInfo.swift:188-198 \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3708}}}],"partialFingerprints":{"codehealthFindingId/v1":"cddb92a37d35fab941693544c20ba281068d61f5fed50de95b51b873f47cfa52"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBProtocol/MacroEvaluationMessages.swift:187-197 | Sources/SwiftBuild/SWBMacroEvaluation.swift:62-72 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/MacroEvaluationMessages.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"7df5fca84a5e0648a7dba71b8e97dd1b9b215068b7ed138b1155ad5f6f21f6c6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:115-125 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:273-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:115\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:128\u0060 calls \u0060failure\u0060, \u0060invalidCommandError\u0060 and \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:285\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"f59c41f354f264023bb4d7e65b1fb4469fbdf0ae5fcbc83a6148426ca702a830"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6\u201310 lines \u00D7 3): Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift:124-133 | Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift:161-170 | Sources/SWBTaskExecution/BuildDescription.swift:1514-1519 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift:124\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"180196a6d2ed67e92aad9765c6dc4723e2224ba81978020e9a2a1b5656468aa1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9\u201310 lines \u00D7 2): Sources/SWBApplePlatform/MiGCompiler.swift:74-82 | Sources/SWBApplePlatform/MiGCompiler.swift:90-99 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/MiGCompiler.swift:74\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/MiGCompiler.swift"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c5010acad3e5678615c171426c9cfcaef64a735f7dd60ab1ed50514fe8257e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBMacro/MacroExpressionParsing.swift:373-382 | Sources/SWBMacro/MacroExpressionParsing.swift:394-403 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBMacro/MacroExpressionParsing.swift:373\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060parser\u0060 to \u0060self) advance() if currentQuotes == .noQuotes \u0026\u0026 currChar == UInt8(ascii: \u0022\\\u0022\u0022\u0060 in one and \u0060self) advance() if currentQuotes == .noQuotes \u0026\u0026 currChar == UInt8(ascii: \u0022\\\u0027\u0022\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"709bba9ccf749c9da4441f3d01e6dec4524e04158bb5aa664c1686a0d884f337"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBProjectModel/PIFGenerationModel.swift:799-808 | Sources/SWBProtocol/ProjectModel/CustomTask.swift:27-36 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060commandLine\u0060 to \u0060[String]\u0060 in one and \u0060[MacroExpressionSource]\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":799}}}],"partialFingerprints":{"codehealthFindingId/v1":"224275f95c76db6d5fce6f88d0e4fc67ebd1fd12d5265e73a5e57531de766495"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:115-124 | Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift:122-131 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 51 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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:115\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e2e348dd2419a0f8e7b50cc61a01d7cb1f77a2023ed3009b93eac3802d4736f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift:41-50 | Sources/SWBTaskExecution/TaskActions/DeferredExecutionTaskAction.swift:28-37 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift:41\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"064f0aa0812fd364b238c9549a4f262863221e7c7648f57eb356cab4fd0454e1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBTestSupport/LibraryGeneration.swift:157-166 | Sources/SWBTestSupport/LibraryGeneration.swift:273-282 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/LibraryGeneration.swift:157\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/LibraryGeneration.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c9b8884757d5a5fe1c8913aa60c697179b9f17842f4124f62569ab5f495244c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBUtil/PbxCp.swift:529-538 | Sources/SWBUtil/PbxCp.swift:539-548 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"d896765ecd2d520695214151789d364302f08a79beb7c77f4939fa54ed369906"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:76-85 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:248-257 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:76\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"10309bbbb0e097160341a6499041f6d0366c14d739bc0eaafbe0a926fc5b387a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:209-218 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:340-349 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"33cfbc5ce746ee2297fdab158c2c8d30427f6052bbc3f231b766df1f01730993"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8\u20139 lines \u00D7 4): Sources/SWBUtil/MachO.swift:1368-1376 | Sources/SWBUtil/MachO.swift:1397-1404 | Sources/SWBUtil/MachO.swift:1416-1423 | Sources/SWBUtil/MachO.swift:1435-1442 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1368}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0949b536c731409a96362ca1046044898df5b958899c4cae330125f7d7c0bde"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6\u20139 lines \u00D7 3): Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift:117-125 | Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift:154-162 | Sources/SWBTaskExecution/BuildDescription.swift:1508-1513 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift:117\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe25b1000fc4017d8b70480a70cddafadaac678793b68155bc6f235f5604af0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBApplePlatform/CoreDataCompiler.swift:54-62 | Sources/SWBApplePlatform/IntentsCompiler.swift:126-134 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreDataCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 30 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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/CoreDataCompiler.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"052e45d78c696783f4ba937afd8c2e5104c171fe35dc6f50691e84897cf743ec"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBCore/LinkageDependencyResolver.swift:275-283 | Sources/SWBCore/LinkageDependencyResolver.swift:315-323 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/LinkageDependencyResolver.swift:275\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"369b6f78ebf37eb543d25c897bd16fa915603864f4b325174624d43cdaf43406"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift:76-84 | Sources/SWBTestSupport/TestWorkspaces.swift:204-212 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6417f138cd231163697e72b03ad93ef22d20ab97fdd9ef05920390855be70d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift:283-291 | Sources/SwiftBuild/ProjectModel/BuildRule.swift:179-187 \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. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060dependencyInfo\u0060 to \u0060PIF.BuildRule.Action.DependencyInfoFormat?\u0060 in one and \u0060Action.DependencyInfoFormat?\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c2106d6664e1bf43fca651c6b79a311446f5d88b45c2bcd4824c6a4b459267c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBProtocol/MessageSupport.swift:71-79 | Sources/SwiftBuild/SWBBuildRequest.swift:106-114 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProtocol/MessageSupport.swift:71\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/MessageSupport.swift"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac8f3a256e31ce42e520b0935252027e0d3ac1140ab84cb76c3563e53c635d80"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBTaskConstruction/DiagnosticSupport.swift:164-172 | Sources/SWBTaskConstruction/DiagnosticSupport.swift:196-204 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/DiagnosticSupport.swift:164\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/DiagnosticSupport.swift"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e8bef31e30afad95e3c6b51a2813450f35897202d82fe9b356bf2b746bb4a20"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift:46-54 | Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/PCHModuleMapTaskProducer.swift:55-63 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift:46\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8054d583cee690d2dd1a8a52f4dc7353ceedf62587d38fc8fc0d7516874bf53"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (4\u20139 lines \u00D7 3): Sources/SWBTaskExecution/BuildDescription.swift:949-957 | Sources/SWBTaskExecution/BuildDescription.swift:971-979 | Sources/SWBTaskExecution/BuildDescription.swift:1004-1007 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/BuildDescription.swift:949\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":949}}}],"partialFingerprints":{"codehealthFindingId/v1":"89548f28ede4bafbf7ac9695d902d2af81f7d497ea5144445066d1091203a366"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:143-151 | Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:154-162 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift:143\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"69b27c5defd523dd31036e856913a5d989258211e4d2a41f4e2e59f1623d9529"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBUtil/IndexStore.swift:191-199 | Sources/SWBUtil/IndexStore.swift:237-245 \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":"Sources/SWBUtil/IndexStore.swift"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4f7b0fa64d7ae6bc4aecb8e30957fc47c1531b3448ad7ed3c0dc0cf26ec7d38"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SwiftBuild/SWBBuildService.swift:214-222 | Sources/SwiftBuild/SWBBuildService.swift:228-236 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/SWBBuildService.swift:214\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/SWBBuildService.swift"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"af6726a7070a2fd41578bfa7392cdc9e1ba46f8fdc4d522ce4fe8d3bc6a1619e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 4): Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift:41-48 | Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:149-156 | Sources/SWBTaskExecution/TaskActions/DeferredExecutionTaskAction.swift:28-35 | Sources/SWBTaskExecution/TaskActions/LSRegisterURLTaskAction.swift:44-51 \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 all 4 call sites, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift:41\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/CodeSignTaskAction.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"be8603a6f88af1d76b0ea6201799a409b0602b65e0aecdfef97838441d1c0892"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 2): Sources/SWBApplePlatform/AssetCatalogCompiler.swift:332-339 | Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift:188-194 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/AssetCatalogCompiler.swift:332\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/AssetCatalogCompiler.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf7e74c53d707fb3a69495caaecea46c2e889be9c3f4fd3e69336c54c1c42e3f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBApplePlatform/AssetCatalogCompiler.swift:481-488 | Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift:176-183 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/AssetCatalogCompiler.swift"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"85d0c030246c07b018cfab81cacf09f5e1ea2ee8f946e551f1cb817884ade922"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBBuildSystem/BuildOperation.swift:1673-1680 | Sources/SWBBuildSystem/BuildOperation.swift:1700-1707 \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1673}}}],"partialFingerprints":{"codehealthFindingId/v1":"188b7a24ab23ce53871ad3671e5124eb02184b5123b68cec43301fa5412fdcf3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:180-187 | Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift:212-219 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LibSwiftDriver/LibSwiftDriver.swift"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"767582036ee5c36fb7b370d7d7a9ae4f75da0a0ab194511ab561803c059f4fd3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBCore/TaskGeneration.swift:471-478 | Sources/SWBCore/TaskGeneration.swift:499-506 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/TaskGeneration.swift:471\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":471}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdd37bea842d3989a8526e0f7c2aa803550192853cecc7c580692f09bfc14d29"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBProtocol/Message.swift:472-479 | Sources/SwiftBuild/SWBBuildTargetInfo.swift:23-30 \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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":472}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b513ab800695252c07330f7d1a12f4a9b26ede21a89c84b35ad369c4c3f6cac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBProtocol/SwiftSDK.swift:50-57 | Sources/SwiftBuild/SWBSwiftSDK.swift:25-32 \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":"Sources/SWBProtocol/SwiftSDK.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f81384fea3a9a437332d5c0225b37f32a429b3690df9d5e898c5d809ac39f05"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift:49-56 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/CopySwiftPackageResourcesTaskProducer.swift:40-47 \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"9968c6634e8af2b8a4fd7c9667826fefec8850ecdb6f6943c41f0bff48433df0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:479-486 | Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:488-495 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift:479\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":479}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cde991d19eb1c72923017f0ec29f1fb5b89241bc032fafa7a3ffbb6569d80b2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1189-1196 | Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1216-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1189\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1214\u0060 calls \u0060contains\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift:1187\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":1189}}}],"partialFingerprints":{"codehealthFindingId/v1":"bef73a410d973d9cd8754129bab278279f2b3429b58e3b80b8410bbe48494c13"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBUtil/OutputByteStream.swift:436-443 | Sources/SWBUtil/OutputByteStream.swift:455-462 \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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":436}}}],"partialFingerprints":{"codehealthFindingId/v1":"834028186a6fed014e73f268c6c48a56799e5f85e9f696c34bac31bcfc5621d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:62-69 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:244-251 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:62\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad69b3939efb336ca341365b15cb59bb86ea0f59620636dac8aae4b4b8ed21a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): Sources/SWBBuildService/BuildOperationMessages.swift:546-552 | Sources/SWBBuildService/BuildOperationMessages.swift:558-564 | Sources/SWBBuildService/BuildOperationMessages.swift:570-576 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildService/BuildOperationMessages.swift:546\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"0af8124eab92d6a9a2d0e5284fe1d0eb64d65abf679651b9e106cfb4206c4c21"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): Sources/SWBCore/ProjectModel/Reference.swift:238-244 | Sources/SWBCore/ProjectModel/Reference.swift:269-275 | Sources/SWBCore/ProjectModel/Reference.swift:308-314 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/ProjectModel/Reference.swift:269\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBCore/ProjectModel/Reference.swift:306\u0060 calls \u0060parseValueForKeyAsString\u0060 and \u0060Sources/SWBCore/ProjectModel/Reference.swift:236\u0060 does not \u2014 after which the two agree again for 4 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ProjectModel/Reference.swift"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"aae8646e6bec3e35912958d764520b07e833d312aa36fe2abf22ab0637e78fd4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift:150-156 | Sources/SWBApplePlatform/StoryboardLinker.swift:58-64 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"e70662b010e5afdb164e2a07c99df297ac63738d684b0e80a6f372971f9e7650"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBApplePlatform/MetalCompiler.swift:190-196 | Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1884-1890 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/MetalCompiler.swift:190\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/MetalCompiler.swift"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1f22b8697bf0adbe82225776517477aa0b90f189bb3975987d64a8c8fbb2d68"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBBuildService/Messages.swift:1189-1195 | Sources/SWBBuildService/Messages.swift:1233-1239 \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. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060message\u0060 to \u0060DescribeSchemesRequest\u0060 in one and \u0060DescribeArchivableProductsRequest\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1189}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d0c6f3944e1e54a804ffdb37bd5180e50fa2e387d6f366b8e96baa2a2fc6cb5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBBuildSystem/BuildOperation.swift:1685-1691 | Sources/SWBBuildSystem/BuildOperation.swift:1712-1718 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBBuildSystem/BuildOperation.swift:1685\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1685}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6a159ba7d8c413556bec3d1d206698460ac16ec34c074caf422736adb667cdb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBCore/LibSwiftDriver/PlannedBuild.swift:100-106 | Sources/SWBCore/LibSwiftDriver/PlannedBuild.swift:109-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":"Sources/SWBCore/LibSwiftDriver/PlannedBuild.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"39d97b587bf62bead7a1200bce7ffdea20d1e23c462494d9723392f291721574"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBCore/ProjectModel/Project.swift:18-24 | Sources/SWBCore/ProjectModel/Workspace.swift:60-66 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/ProjectModel/Project.swift:18\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ProjectModel/Project.swift"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"f05bec791d06f76bfca9ee5a17c272581e9051bdce0fd69d9d91685163011d64"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBTaskConstruction/DiagnosticSupport.swift:118-124 | Sources/SWBTaskConstruction/DiagnosticSupport.swift:165-172 \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":"Sources/SWBTaskConstruction/DiagnosticSupport.swift"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9cbc9bc94e917d4edfa0128feec1e072895ac6b360234f297a7d473e74c7d75"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift:250-256 | Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ResourcesTaskProducer.swift:181-187 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift:250\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d81c04a1f1a84596fe7a93c1ed3bcd71d7f926f32aca2bddff02b4b16a5267b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift:240-246 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift:340-346 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce9ef5f0a2fdafb72b9644120420df95561cbd15798154e3f5c35fe5f2ff485d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift:481-487 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift:490-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. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift:488\u0060 calls \u0060asJSON\u0060 and \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift:480\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleMapTaskProducer.swift"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"98535388e00f2391b3d17110aea2c2e313cab7c8d622ea39e1f4c143946ba13e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBTaskExecution/BuildDescription.swift:1149-1155 | Sources/SWBTestSupport/TaskExecutionTestSupport.swift:117-123 \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1149}}}],"partialFingerprints":{"codehealthFindingId/v1":"36c796e26ec12984439e651e24b758c4e95a67e1f91bd1f5fb75aff0b46bdafe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBTestSupport/LibraryGeneration.swift:280-286 | Sources/SWBTestSupport/LibraryGeneration.swift:334-340 \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":"Sources/SWBTestSupport/LibraryGeneration.swift"},"region":{"startLine":280}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e0ce33d84ae60b39a0ef6be45688209ba254c4df3816af3ecba6f1a7a3633ca"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBUtil/Environment.swift:58-64 | Sources/SWBUtil/Environment.swift:67-73 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/Environment.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"18a4357378864872b05d09aadd661b663ce38aa2bf924100f6c78735adf3d306"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBUtil/String.swift:620-632 | Sources/SWBUtil/String.swift:644-650 \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. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/String.swift"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a59292970bd4c423ef4ef62b944dd823edfa7d131faac69a6ce577823453231"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SwiftBuild/SWBBuildServiceSession.swift:983-989 | Sources/SwiftBuild/SWBBuildServiceSession.swift:1003-1009 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/SWBBuildServiceSession.swift:983\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":983}}}],"partialFingerprints":{"codehealthFindingId/v1":"af021cd639d4dc9b47a321b2ed91572b2b1043d38c5685d3b3e1a733a6fc77ff"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (3\u20136 lines \u00D7 7): Sources/SWBBuildService/BuildDescriptionMessages.swift:163-165 | Sources/SWBBuildService/Messages.swift:752-754 | Sources/SWBBuildService/Messages.swift:844-849 | Sources/SWBBuildService/Messages.swift:953-958 | Sources/SWBBuildService/Messages.swift:993-995 | Sources/SWBBuildService/Messages.swift:1100-1105 | Sources/SWBBuildService/Messages.swift:1320-1324 \u2014 there are 7 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 7 sites; resolving a subset leaves the remainder to drift apart. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060message\u0060 to \u0060DocumentationInfoRequest\u0060 in one and \u0060LocalizationInfoRequest\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBBuildService/Messages.swift:844\u0060 calls \u0060create\u0060 and \u0060Sources/SWBBuildService/Messages.swift:993\u0060 does not \u2014 after which the two agree again for 4 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/BuildDescriptionMessages.swift"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"b245df6c348fe394af53a64c0a62dde53c6fe6d55b9f59f32389e51029d4ebb2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): Sources/SWBTestSupport/LibraryGeneration.swift:162-167 | Sources/SWBTestSupport/LibraryGeneration.swift:278-283 | Sources/SWBTestSupport/LibraryGeneration.swift:332-337 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/LibraryGeneration.swift:162\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/LibraryGeneration.swift"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c82cf8ef58f67fa2e63dff8c2cec45d835d7b8f9fdcbb9148b45ecfea7a0ee8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBCore/TaskGeneration.swift:308-313 | Sources/SWBCore/TaskGeneration.swift:316-321 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":308}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d1bc7d897d9361425d02070a4002843155d59352d36f721a63e900940eaec48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBCore/XCFramework.swift:1128-1133 | Sources/SWBCore/XCFramework.swift:1144-1149 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/XCFramework.swift:1128\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1128}}}],"partialFingerprints":{"codehealthFindingId/v1":"03ab629e51f57f349d827add6e49266598e4ecb7a1333f1dd44c58ba75985f4d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/InfoPlistTaskProducer.swift:196-201 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/InfoPlistTaskProducer.swift:258-263 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/InfoPlistTaskProducer.swift:196\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/InfoPlistTaskProducer.swift"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1c74f431249393d78730aad9b8309f6d67f7728cbfb654ca869452c29cbe173"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBTestSupport/BuildOperationTester.swift:1001-1006 | Sources/SWBTestSupport/BuildOperationTester.swift:1017-1022 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/BuildOperationTester.swift:1001\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c48eceaa86f66874df22ac61e758e7eda51f9e8d3d3d5e239171f596c3212e3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBTestSupport/TaskConstructionTester.swift:170-175 | Sources/SWBTestSupport/TaskConstructionTester.swift:189-194 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/TaskConstructionTester.swift:170\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"8031635f92f52ef34203f9e1829ecfef21621c10006bdb31ec795c56bfe7c118"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBUtil/MachO.swift:373-378 | Sources/SWBUtil/MachO.swift:395-400 \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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"d98d63e75d7d0f98fc7add50ad40fa9a5086fc7ef8420166193be0c2abdb2a93"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBUtil/RegEx.swift:44-49 | Sources/SWBUtil/RegEx.swift:79-84 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/RegEx.swift:44\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/RegEx.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"640eb13d2047462c35622bb68ffda615a2ad728237e6e803f9125d7c72ee4556"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:503-508 | Sources/SwiftBuildTestSupport/TestBuildOperationDelegate.swift:40-45 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift:503\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":503}}}],"partialFingerprints":{"codehealthFindingId/v1":"67c6c0590b7b8f694ef71c89d7e02692e27aae3b8e1e6253cef48a6356dbee14"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 5): Sources/SWBApplePlatform/PluginDCLT.swift:84-89 | Sources/SWBGenericUnixPlatform/Plugin.swift:121-125 | Sources/SWBQNXPlatform/Plugin.swift:62-66 | Sources/SWBUniversalPlatform/BareMetal.swift:25-29 | Sources/SWBWebAssemblyPlatform/Plugin.swift:40-44 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere all 5 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 5 times. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/PluginDCLT.swift:84\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/PluginDCLT.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"00ad4df62fd0fb8a43ad4be6604c430a46b2376461124bde239ec2e02d1375f3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 4): Sources/SWBTestSupport/BuildOperationTester.swift:349-353 | Sources/SWBTestSupport/BuildOperationTester.swift:662-666 | Sources/SWBTestSupport/TaskConstructionTester.swift:151-155 | Sources/SwiftBuildTestSupport/CoreQualificationTester.swift:179-183 \u2014 there are 4 copies across 3 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 4 sites; resolving a subset leaves the remainder to drift apart. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/BuildOperationTester.swift:349\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The \u0060return\u0060 at the foot of the matched lines is the enclosing body\u0027s own terminal exit, not an early one: it moves with them unchanged, and each site calls the extracted unit from the position that \u0060return\u0060 occupied \u2014 no decision has to be handed back and re-acted on. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060kind\u0060 to \u0060DiagnosticKind\u0060 in one and \u0060BuildOperationTester.DiagnosticKind\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d032506f468db00a06b9f869426230a53c906117109773c0989e4f845379363"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 4): Sources/SWBTestSupport/LibraryGeneration.swift:54-58 | Sources/SWBTestSupport/LibraryGeneration.swift:163-167 | Sources/SWBTestSupport/LibraryGeneration.swift:279-283 | Sources/SWBTestSupport/LibraryGeneration.swift:333-337 \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":"Sources/SWBTestSupport/LibraryGeneration.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0fd84b7314b1155e633b2dea75abc36d15898e28f210f469756ac52d64ca384"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (4\u20135 lines \u00D7 9): Sources/SwiftBuild/ProjectModel/BuildPhases.swift:269-273 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:291-295 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:313-317 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:335-339 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:358-361 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:398-401 | Sources/SwiftBuild/ProjectModel/References.swift:165-168 | Sources/SwiftBuild/ProjectModel/References.swift:257-260 | Sources/SwiftBuild/ProjectModel/Targets.swift:505-508 \u2014 there are 9 copies across 3 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 9 sites; resolving a subset leaves the remainder to drift apart. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ProjectModel/BuildPhases.swift:358\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SwiftBuild/ProjectModel/BuildPhases.swift:269\u0060 calls \u0060container\u0060 and \u0060Sources/SwiftBuild/ProjectModel/BuildPhases.swift:358\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ProjectModel/BuildPhases.swift"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"816432c2b5458340b64f5d9f88d6d4875df430d72a52ecdf001b558da89f1361"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): Sources/SWBBuildService/Messages.swift:1191-1195 | Sources/SWBBuildService/Messages.swift:1214-1218 | Sources/SWBBuildService/Messages.swift:1235-1239 \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. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060message\u0060 to \u0060DescribeSchemesRequest\u0060 in one and \u0060DescribeProductsRequest\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBBuildService/Messages.swift:1211\u0060 calls \u0060lookup\u0060, \u0060error\u0060 and \u0060Sources/SWBBuildService/Messages.swift:1190\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1191}}}],"partialFingerprints":{"codehealthFindingId/v1":"95c684f0011a9f9738dd46bee609963023a894b47f7d12b343c68ed247ddc9f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): Sources/SWBCore/ProjectModel/Reference.swift:230-234 | Sources/SWBCore/ProjectModel/Reference.swift:260-264 | Sources/SWBCore/ProjectModel/Reference.swift:298-302 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/ProjectModel/Reference.swift:230\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SWBCore/ProjectModel/Reference.swift:306\u0060 calls \u0060parseValueForKeyAsString\u0060 and \u0060Sources/SWBCore/ProjectModel/Reference.swift:238\u0060 does not \u2014 after which the two agree again for 3 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ProjectModel/Reference.swift"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"abff2587f0ffb29e27818ab8642c2107b9910d52ef15ac91148d7ba882a6c1a2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBAndroidPlatform/Plugin.swift:117-121 | Sources/SWBQNXPlatform/Plugin.swift:91-96 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBAndroidPlatform/Plugin.swift:117\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcff9f55d0190500f59e584f8966563f7eb446e9e811d20f564efde0b3387de6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBAndroidPlatform/Plugin.swift:121-125 | Sources/SWBApplePlatform/PluginDCLT.swift:84-89 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBAndroidPlatform/Plugin.swift:121\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1e38bb3071550b6fe1fef0a34c8d43bcbaae80ca75b90d3cc6d5fb5ef3740b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBApplePlatform/RealityAssetsTaskProducer.swift:70-74 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/GenerateAppPlaygroundAssetCatalogTaskProducer.swift:32-36 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/RealityAssetsTaskProducer.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3d1e3cefdffa58510da3bdad7e9756298fa160357455a0b367247474b1d0aa2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBApplePlatform/StubBinaryTaskProducer.swift:57-61 | Sources/SWBApplePlatform/StubBinaryTaskProducer.swift:63-67 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/StubBinaryTaskProducer.swift:57\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/StubBinaryTaskProducer.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"aef76b430122f7df6343a0f8cf5accd53d2246f4553ef1cf26148710c4fbb92f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBCore/ClangModuleVerifier/ModuleVerifierTarget.swift:145-149 | Sources/SWBCore/ClangModuleVerifier/ModuleVerifierTarget.swift:158-162 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/ClangModuleVerifier/ModuleVerifierTarget.swift:145\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The \u0060return\u0060 at the foot of the matched lines is the enclosing body\u0027s own terminal exit, not an early one: it moves with them unchanged, and each site calls the extracted unit from the position that \u0060return\u0060 occupied \u2014 no decision has to be handed back and re-acted on."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ClangModuleVerifier/ModuleVerifierTarget.swift"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"00c7b2e0359125889c674fd19efddd5afe490b92583e349441459312d373ff46"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBCore/Settings/Settings.swift:1042-1046 | Sources/SWBTestSupport/DummyCommandProducer.swift:74-78 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/Settings/Settings.swift:1042\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1042}}}],"partialFingerprints":{"codehealthFindingId/v1":"b032144fbfe6acb70503d77e107e13e546bca9651359d084a5d76c2cb48aaa44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBProjectModel/PIFGenerationModel.swift:117-121 | Sources/SWBProjectModel/PIFGenerationModel.swift:229-233 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProjectModel/PIFGenerationModel.swift:117\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The \u0060return\u0060 at the foot of the matched lines is the enclosing body\u0027s own terminal exit, not an early one: it moves with them unchanged, and each site calls the extracted unit from the position that \u0060return\u0060 occupied \u2014 no decision has to be handed back and re-acted on."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"52ec29b366951aca01be5ca2f3d1537e1b14548ba84ea255a31e305ef5aa2dd5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBProtocol/MessageSupport.swift:374-378 | Sources/SwiftBuild/SWBBuildParameters.swift:78-82 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProtocol/MessageSupport.swift:374\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/MessageSupport.swift"},"region":{"startLine":374}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cff5d418a9e8e0985e751658795a6bb5f772bfa035e517392d5c3c2e4e1430d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift:393-397 | Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift:402-406 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":393}}}],"partialFingerprints":{"codehealthFindingId/v1":"53f4efe12f3428dc24ed277cda466ccf8aefe9d055aaee8e1b564a52e551577b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift:329-333 | Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift:347-351 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift:329\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":329}}}],"partialFingerprints":{"codehealthFindingId/v1":"01db44fdfba73d77340de1172798f8a2d5e64e051f857d7eedd174973f52d759"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBUtil/OutputByteStream.swift:505-509 | Sources/SWBUtil/OutputByteStream.swift:523-527 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/OutputByteStream.swift:505\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":505}}}],"partialFingerprints":{"codehealthFindingId/v1":"01e0634a9207521b46d9c42d6bf797150c51fd02a9f7d169bd675cc8a9830f81"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBUtil/PropertyList.swift:263-267 | Sources/SWBUtil/PropertyList.swift:278-282 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBUtil/PropertyList.swift:263\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":263}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b6cb5c94c1fa9087ffdbb5158a2de6c081dfcecbc658b800dae782d50593f0c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBAndroidPlatform/Plugin.swift:140-146 | Sources/SWBWindowsPlatform/Plugin.swift:111-117 \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":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"30ccecae304ce606c557459a4f5ce5c5b5cc113dd4182285543241e018624e07"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBApplePlatform/CoreMLCompiler.swift:35-40 | Sources/SWBApplePlatform/IntentsCompiler.swift:30-35 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 77 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. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060indexingPayload\u0060 to \u0060CoreMLIndexingInfo\u0060 in one and \u0060IntentsIndexingInfo\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c7a3fd090653e86ff8c324f40cfe213c1ae56a39d3c3f6df4c543bf2d207668"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBApplePlatform/CoreMLCompiler.swift:42-46 | Sources/SWBApplePlatform/IntentsCompiler.swift:37-41 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreMLCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 6 separate duplicated blocks between them, totalling at least 77 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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"36109f50979c58823dccfe539588a284a641e4fca9692d72a7b02eb922bde44a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift:166-173 | Sources/SWBApplePlatform/StoryboardPostprocessor.swift:22-27 \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":"Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"deecb2cf4eb3552a0129bfdf04e8e1320760aeb63a13fdc7b1cfefa0f12d7234"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBBuildService/BuildDependencyInfo.swift:206-211 | Sources/SWBCore/LinkageDependencyResolver.swift:606-611 \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"51dceda2c3cde50c9402dae8a70f0a61efc7c106fe6e41599a94918b464808e3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBCore/ProjectModel/Project.swift:170-177 | Sources/SWBCore/ProjectModel/Target.swift:295-302 \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":"Sources/SWBCore/ProjectModel/Project.swift"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad2896aa7f10b81ee5f010840005eaca68e90be2bf12666bba56e1319cdc0808"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBCore/ProjectModel/Target.swift:107-112 | Sources/SWBProtocol/ProjectModel/TargetDependency.swift:21-26 \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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6df68eb5a40717487f2884199ac7e4ed7511cf1126379044573b02d63db09a6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): Sources/SWBCore/TaskGeneration.swift:1294-1298 | Sources/SWBProtocol/MessageSupport.swift:613-617 | Sources/SwiftBuild/SWBLocalizationSupport.swift:60-64 \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":1294}}}],"partialFingerprints":{"codehealthFindingId/v1":"348586895f9fe32b2a31d42b0355eab01e15a3aa4f590bc015113b2037f27b80"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBProjectModel/PIFGenerationModel.swift:660-669 | Sources/SWBTestSupport/TestWorkspaces.swift:608-617 \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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":660}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4497b63edcd05735701dd0d0d3870bfa4a0602bc8db2449f5b2ab843a86ad25"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBProtocol/DependencyGraphMessages.swift:150-155 | Sources/SWBProtocol/IndexingMessages.swift:112-117 \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":"Sources/SWBProtocol/DependencyGraphMessages.swift"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"efe4a168ef1dbf3d1a380ce8012807a32e4836d969d2ed69d11a2bc3828f88a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBProtocol/DocumentationMessages.swift:32-36 | Sources/SWBProtocol/IndexingMessages.swift:158-162 \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":"Sources/SWBProtocol/DocumentationMessages.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"777495d5cf7c8646220f89c728b1d64a40b5fca4c5e8c931b2e1b5e657953b1c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBProtocol/ProjectModel/Target.swift:184-188 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:288-294 \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":"Sources/SWBProtocol/ProjectModel/Target.swift"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"edee3cd5be837c14b27e28c82ea0b362193d2494586abeec0cec01d5f4de2a0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 5): Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift:89-93 | Sources/SWBTaskExecution/TaskActions/ClangCachingOutputMaterializerTaskAction.swift:85-89 | Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift:259-263 | Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift:86-90 | Sources/SWBTaskExecution/TaskActions/SwiftCachingOutputMaterializerTaskAction.swift:81-85 \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 all 5 call sites, so a change lands once. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift:85\u0060 calls \u0060cancelDetached\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift:256\u0060 does not \u2014 after which the two agree again for 2 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"444a3762381a4a0f342f0025dac4817263408a4e668605f0cb54e567a4d4aaed"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 5): Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift:95-99 | Sources/SWBTaskExecution/TaskActions/ClangCachingOutputMaterializerTaskAction.swift:91-95 | Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift:265-269 | Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift:92-96 | Sources/SWBTaskExecution/TaskActions/SwiftCachingOutputMaterializerTaskAction.swift:87-91 \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 all 5 call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c4cd8c4758bc6cce438fdf5937ccfa55bd1b0e9ab1fdd46f6c77739049f7a8d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:203-207 | Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift:210-214 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 51 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":"Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"6571f4722625d335396437b623cafa3fe26ae9a391389224d9bc3c94e105c7bf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift:209-213 | Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift:216-220 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/SwiftCachingMaterializeKeyTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 5 separate duplicated blocks between them, totalling at least 51 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":"Sources/SWBTaskExecution/TaskActions/ClangCachingMaterializeKeyTaskAction.swift"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"7258c81d0095c0df6c6afede7305cdc42c594d12dd142659c0ca104186b9290c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 4): Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift:32-36 | Sources/SWBTaskExecution/TaskActions/RegisterExecutionPolicyExceptionTaskAction.swift:28-32 | Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift:26-30 | Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift:25-29 \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 all 4 call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"afb1e362abd9aa7bc3fab334bf3a95173b6451ae4ff5f8fd1e09b744bc673d13"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift:134-138 | Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift:28-32 \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":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f829a5e2f02bddabc274a106d7e24f179b505fd8ec9f9c9ae4eb38f1fd5b808"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift:23-31 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:68-78 \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":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"bece9fdf1e2dd82bae3009f057c95a34ed514f8f1eda1be3572e78a774f6c81d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift:89-109 | Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift:45-65 \u2014 before extracting anything, compare \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift\u0060 and \u0060Sources/SWBTaskExecution/TaskActions/ProcessProductProvisioningProfileTaskAction.swift\u0060 as WHOLE FILES: this scan already matched 7 separate duplicated blocks between them, totalling at least 136 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":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"c041600187ba9caeb415ae8afe259b7e715f87e41a591eb9d83ebdce7b7583ca"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 6): Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleGeneralCommands.swift:45-50 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleGeneralCommands.swift:184-189 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleSessionCommands.swift:23-28 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleSessionCommands.swift:72-77 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleSessionCommands.swift:96-101 | Sources/SwiftBuild/SWBBuildServiceConsole.swift:30-35 \u2014 there are 6 copies across 3 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 6 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleGeneralCommands.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"592b8ae047256938e52849b98fc25c911841c190966be7d3ae3509be5e015119"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBApplePlatform/CoreDataCompiler.swift:28-34 | Sources/SWBApplePlatform/IntentsCompiler.swift:106-112 \u2014 before extracting anything, compare \u0060Sources/SWBApplePlatform/CoreDataCompiler.swift\u0060 and \u0060Sources/SWBApplePlatform/IntentsCompiler.swift\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 30 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":"Sources/SWBApplePlatform/CoreDataCompiler.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"457b03616e4f74ee4999078b234591f75235c527901060f902059669475e25bf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBCore/BuildConfigurationFiltering.swift:35-39 | Sources/SWBCore/PlatformFiltering.swift:77-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":"Sources/SWBCore/BuildConfigurationFiltering.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"c59f76e871cadfc22040fd22dbc095305dc7976550681f19b2da751b169176d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBCore/ProjectModel/BuildPhase.swift:235-240 | Sources/SWBProtocol/ProjectModel/BuildPhase.swift:78-83 \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. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060destinationSubfolder\u0060 to \u0060MacroStringExpression\u0060 in one and \u0060MacroExpressionSource\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ProjectModel/BuildPhase.swift"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5de7c3850473252ae0a0f804e5752030d94580d95680c36b7598a871ad57811"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBCore/WorkspaceContext.swift:83-87 | Sources/SwiftBuild/SWBSystemInfo.swift:30-34 \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. Note first that the copies are not typed on the same thing: the declarations holding them bind \u0060operatingSystemVersion\u0060 to \u0060Version\u0060 in one and \u0060OperatingSystemVersion\u0060 in another, and the duplicated lines use it. The extracted unit therefore needs a parameter type that fits BOTH \u2014 their common supertype where they have one, or a new abstraction over them where they do not \u2014 and settling that is the step that comes BEFORE the extraction above. Where the two types are deliberately unrelated, the duplication is the price of that separation and the honest resolution is to record the decision rather than to extract."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/WorkspaceContext.swift"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9c5b51e0cc27a7e6bb7b2c20110848ae979f91b455888f8f92777b62081de63"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBMacro/MacroValueAssignmentTable.swift:475-481 | Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift:195-208 \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":"Sources/SWBMacro/MacroValueAssignmentTable.swift"},"region":{"startLine":475}}}],"partialFingerprints":{"codehealthFindingId/v1":"411b3634f9f6857b0c62f4a288dfba5580eea57b59122765fe02b77c34c5b388"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBProjectModel/PIFGenerationModel.swift:779-784 | Sources/SWBProtocol/ProjectModel/BuildRule.swift:51-56 \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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":779}}}],"partialFingerprints":{"codehealthFindingId/v1":"15074ce5b348541e368943c89b89c5dcd71721751b65d61b616d580673564a60"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 7): Sources/SWBProtocol/BuildOperationMessages.swift:363-367 | Sources/SWBProtocol/BuildOperationMessages.swift:384-388 | Sources/SWBProtocol/BuildOperationMessages.swift:405-409 | Sources/SWBProtocol/BuildOperationMessages.swift:565-569 | Sources/SWBProtocol/BuildOperationMessages.swift:607-611 | Sources/SWBProtocol/BuildOperationMessages.swift:764-768 | Sources/SWBProtocol/DocumentationMessages.swift:72-76 \u2014 there are 7 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 7 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/BuildOperationMessages.swift"},"region":{"startLine":363}}}],"partialFingerprints":{"codehealthFindingId/v1":"d702b03435dd6c5d728264055222c2214cc25a42e3988c91af4f6083c4a8d22d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): Sources/SWBProtocol/BuildSettingsInfoMessageTypes.swift:22-26 | Sources/SWBProtocol/ProjectDescriptorMessages.swift:29-33 | Sources/SWBProtocol/ProjectDescriptorMessages.swift:147-151 \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":"Sources/SWBProtocol/BuildSettingsInfoMessageTypes.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"21d1aa50fa99c60e086dd1850ed341086cb63893b8973ed94cd9092d306ba29b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 5): Sources/SWBProtocol/ProjectModel/BuildPhase.swift:51-56 | Sources/SWBProtocol/ProjectModel/Reference.swift:162-167 | Sources/SWBProtocol/ProjectModel/Reference.swift:236-241 | Sources/SWBProtocol/ProjectModel/Target.swift:87-92 | Sources/SWBProtocol/ProjectModel/Target.swift:239-244 \u2014 there are 5 copies across 3 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 5 sites; resolving a subset leaves the remainder to drift apart."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProtocol/ProjectModel/BuildPhase.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"77a9a6fbaf13af0402f5e7c7325a7de62f5d9f5944eb749f1b86d2adc5dff1ed"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBApplePlatform/EXUtil.swift:22-27 | Sources/SWBApplePlatform/EXUtil.swift:74-79 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBApplePlatform/EXUtil.swift:22\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/EXUtil.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"1701dd9a09a89f12b6fc114a00d3663a7fd316be8adedcf6e3b6713cf179dc11"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBCore/LinkageDependencyResolver.swift:118-122 | Sources/SWBCore/TargetDependencyResolver.swift:305-309 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/LinkageDependencyResolver.swift:118\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"49673b24181d50527a070a95ffa56bb409b4dcbfcd1bde71dafb7d7e1e6c13b9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): Sources/SWBMacro/MacroConditionExpression.swift:434-438 | Sources/SWBMacro/MacroConditionExpression.swift:450-454 | Sources/SWBMacro/MacroConditionExpression.swift:498-502 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBMacro/MacroConditionExpression.swift:434\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBMacro/MacroConditionExpression.swift"},"region":{"startLine":434}}}],"partialFingerprints":{"codehealthFindingId/v1":"b663978cdf3ed1b7318e6cf2ed760e509e78c02fff5cf35e71d962f8d883ad8f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBMacro/MacroConditionExpression.swift:466-470 | Sources/SWBMacro/MacroConditionExpression.swift:482-486 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBMacro/MacroConditionExpression.swift:466\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBMacro/MacroConditionExpression.swift"},"region":{"startLine":466}}}],"partialFingerprints":{"codehealthFindingId/v1":"9683e7a8be67db7fd6ce7aaee7393485036544a86e1c601b952a9588855887ca"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBProjectModel/PIFGenerationModel.swift:275-279 | Sources/SWBProjectModel/PIFGenerationModel.swift:540-544 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBProjectModel/PIFGenerationModel.swift:275\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdb979b92b0776981e9b0b529af3d5c789eedd413d9181a5cd2e9d58f7e32ec2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBUtil/MachO.swift:1001-1006 | Sources/SWBUtil/MachO.swift:1028-1033 \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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"10aa292e47d830c8eb6df0aebaf10c68efed071bdbfb4a2811fecf38b6478d61"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 5): Sources/SwiftBuild/ProjectModel/BuildPhases.swift:261-265 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:283-287 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:305-309 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:327-331 | Sources/SwiftBuild/ProjectModel/BuildPhases.swift:379-383 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ProjectModel/BuildPhases.swift:261\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ProjectModel/BuildPhases.swift"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbf77f266ba0b115eda1934cdbf3e5689a567e1628aab94e7a7d8274d21a986c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SwiftBuild/ProjectModel/References.swift:155-161 | Sources/SwiftBuild/ProjectModel/References.swift:247-253 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SwiftBuild/ProjectModel/References.swift:155\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuild/ProjectModel/References.swift"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0fc59c360b7257357f326d27db3e02b6db3e1a8ef2951dade0de03279be34cc"}},{"ruleId":"D4","level":"warning","message":{"text":"Near-duplicate member family (3 members, 58 shared lines): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:77-144 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:146-213 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:215-282 \u2014 These 3 members are variants of one another: a block of 58 lines reported below appears in every one of them, and the pairwise near-duplicate rows they would otherwise produce are collapsed into this row. Read them as one construct written 3 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 3 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fc727433d6249f2c1d471dae23f3d4817cafc332e0c943ad21d3511c6ab8b39"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:93-115 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:162-184 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:93\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f285cef70c570cb0fb4a157bca2d3a9707ed1dd03f9b9ff6f3f6adf3155b286"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift:63-85 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift:121-143 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift:63\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"c624ee5d655798fd8cc5b8d42430028f484250fb200fd400670008a27532b35f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 3): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:79-100 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:148-169 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:217-238 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:79\u0060 it runs out through the closing brace of the declaration holding it and carries on into the declaration that follows \u2014 the window is the tail of one member plus the head of the next, so no call can be substituted for those exact lines, and the smallest declaration that contains all of them is the type they sit in. The repeated unit is the member each site sits in: where those members\u0027 bodies are the same, move one whole member to the shared location and have the others delegate to it; where the copies are a run of near-identical overloads or wrappers that differ only in their signatures, the repetition IS the run \u2014 a one-line delegation has no helper inside it to lift \u2014 so generate the run from the set it enumerates, or accept it and keep each member\u0027s own documentation with it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"151d440afc59b8f2964b5d5bb926495aec3cccd710dbc9931e2de7323b4264d7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift:96-116 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift:166-186 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift:96\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb12aa61814416037eb7c188dc56bb559215e36f4995f5995485a0ab12991d75"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 4): Sources/SWBTestSupport/TestWorkspaces.swift:188-204 | Sources/SWBTestSupport/TestWorkspaces.swift:214-230 | Sources/SWBTestSupport/TestWorkspaces.swift:232-248 | Sources/SWBTestSupport/TestWorkspaces.swift:272-288 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa7c73ea7ae482512beee1983e6eb84917a93b75b6fbeb100e82bb8e152810ba"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12\u201314 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:1224-1235 | Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:1239-1250 | Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:1343-1356 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:1224\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":1224}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b29eb11fff38e8843f8c9b3fd898fb802dd0abc814e02eaaaea83191a9322dc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:131-144 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:200-213 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:269-282 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:131\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7f61e595e53b163c3ef613f4920d1aef178c81636fcfbe05c9a989cd336c546"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:117-128 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:186-197 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:255-266 \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":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d3338df8a6799429e10d33f32e3b60cb3017ffd7ab6dbc7e881f8d504818881"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): Sources/SWBCore/SpecImplementations/ProductTypes.swift:304-315 | Sources/SWBCore/SpecImplementations/ProductTypes.swift:318-329 \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":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":304}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b841d646657d2fae47fb962f90f74d9b01339ade6e1676a39d8361730ac0a45"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift:499-509 | Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift:163-173 | Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift:198-208 \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":"Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ba814b0551af0aae8b2c258e65435501cf45abb03ac70a313d8765c3081c77f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1438-1448 | Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1837-1847 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1438\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just after the matched lines, \u0060Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1449\u0060 calls \u0060Set\u0060, \u0060contains\u0060, \u0060next\u0060 and \u0060Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1848\u0060 does not \u2014 after which the two agree again for 3 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1438}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3aa7c3a9f727af4d2a57fb65b371b492bce4ae5da760ad7848354828b35f126"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3019-3029 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3065-3075 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3019\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3019}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3481490f099ab3a430aff41d58ae90f35dc49706c85963e98fead1c6012405b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (4\u201311 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift:301-311 | Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift:396-406 | Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift:48-51 \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. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately. \u2605 These copies have DRIFTED, and that is worth reading before extracting anything: just before the matched lines, \u0060Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift:301\u0060 calls \u0060sparseSDKSearchPathArguments\u0060 and \u0060Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift:48\u0060 does not \u2014 after which the two agree again for 3 more lines. One of those two behaviours is the intended one and the other is what a copy-paste left behind, so decide which BEFORE unifying them: extracting the shared part will silently settle it, and if the copy that skips the call is the wrong one, that bug is already live."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fd6eb86297daf41aa5825491d039785c8ab4723d12d4f1f93329a0c80cd3682"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:106-115 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:175-184 | Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:244-253 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift:106\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingDataPruner.swift"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4774b7973c0d97fd677ba0c76904df9ea99440173b22511e5941a29e98f4892"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:894-903 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:808-818 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:894\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":894}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ec13fd54dfdd42577e37328622830f365778852ad15e6e82071a4a25990acd4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift:83-92 | Sources/SWBCore/SpecImplementations/Tools/SwiftABIGenerationTool.swift:42-51 \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3fd39ccf5aa0882ebbe3a89f15051248216022be173795372b24310f65d29da"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:34-42 | Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1081-1089 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:1160-1168 \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c21e2c559f0506d0c93102f693b787bd43008a40ea68b67502dae10c8f2efac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift:430-438 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3730-3738 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift:430\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift"},"region":{"startLine":430}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1b77e897830a7b0ca03925bf0faeb63aa6949f5c254a53356aa49412d225c64"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3048-3056 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3104-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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3048\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3048}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d64171126d365c7ada6901d64e26764db1114415781578cdc69bc460ded62f2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1452-1459 | Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1848-1855 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:1452\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1452}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e23489b8f34be4685c20593ab170f3be49eece434af01bb9ffd836ce10ea06d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift:20-26 | Sources/SWBCore/SpecImplementations/Tools/SwiftABIGenerationTool.swift:20-26 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3630-3636 \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 all 3 call sites, so a change lands once. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"139b2c54170f76d6d51e642f5c656067d82465e684d62b19ed22edd83b3e795a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:390-396 | Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:400-406 \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cd95e802f9543b6fa172f6a095ec5746d3f9e13539d64c240050eba17e510b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift:439-444 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:3739-3744 \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":"Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift"},"region":{"startLine":439}}}],"partialFingerprints":{"codehealthFindingId/v1":"259147479ff71b29208d7d3a7b78c7fdecf59187a4a1b872dcbac6929255a007"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift:30-35 | Sources/SWBCore/SpecImplementations/Tools/SwiftABIGenerationTool.swift:30-35 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift:30\u0060 it runs out through the closing brace of the declaration holding it \u2014 the window is that declaration\u0027s tail, not a fragment that begins part-way through something, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f728c9620987d310bb12dcc8d412813566aa9df869e4c9c27528e6544d858b2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): Sources/SWBTestSupport/TestWorkspaces.swift:915-920 | Sources/SWBTestSupport/TestWorkspaces.swift:1349-1354 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/TestWorkspaces.swift:915\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":915}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bd64c4ad8f683b35a791f573e420398c4b9db89f3c0457fa6ba8716cec39383"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): Sources/SWBTestSupport/TestWorkspaces.swift:919-923 | Sources/SWBTestSupport/TestWorkspaces.swift:1353-1357 | Sources/SWBTestSupport/TestWorkspaces.swift:1415-1419 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBTestSupport/TestWorkspaces.swift:919\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":919}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3eac75b7c5233a474e67078be563e9bdd34564916ca2bcfb9829e4880528fcf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): Sources/SWBCore/SpecImplementations/ProductTypes.swift:618-622 | Sources/SWBCore/SpecImplementations/ProductTypes.swift:856-860 \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. Each matched range is the entire body of the declaration above it, so the region is already a complete unit: move that whole declaration to the shared location and have each site call it, rather than lifting the lines out of their bodies. Any \u0060return\u0060 inside it is the body\u0027s own exit and keeps its meaning in the moved unit."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":618}}}],"partialFingerprints":{"codehealthFindingId/v1":"85c00035724248672751740f3ddd1d28fbc917d8efd2ac7c8595c1568b9b77fe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (2\u20135 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:2015-2016 | Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:2035-2039 | Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:2044-2048 \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. Read the line range as the matched WINDOW rather than a finished unit: at \u0060Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift:2015\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":2015}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f1e4d0dd84c0c2bc158632d2d572667290376e0eae37a209f78dd35caf49e80"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): Sources/SWBCore/SpecImplementations/Tools/AppShortcutStringsMetadataCompiler.swift:139-144 | Sources/SWBCore/SpecImplementations/Tools/DocumentationCompiler.swift:529-534 | Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift:127-132 \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 all 3 call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/AppShortcutStringsMetadataCompiler.swift"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"120ae52c48667ebf6fdd50a3e787ea71f4dddb9c430f5483aa1c6631aec63b14"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift:183-191 | Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift:104-112 \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. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"b88ce5fcabc61aa9667d0d8462798d29c3c6a97561adfc30680587ca7111c9e8"}},{"ruleId":"D5","level":"warning","message":{"text":"Unstable project SWBApplePlatform (CMake): SWBApplePlatform (CMake) has instability 0.83 with 1 dependents."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"96fcf8f98bd8792debdf681e709121f3b0869b4c14a3c293e5c04a625035644c"}},{"ruleId":"D5","level":"warning","message":{"text":"Unstable project SWBUniversalPlatform (CMake): SWBUniversalPlatform (CMake) has instability 0.83 with 1 dependents."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"434fafc5c6001097ae0f0220b029cb04a119c0d4a0f9dd4272437585932f8c8b"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: SWBLLBuild (SwiftPM): SWBLLBuild (SwiftPM): abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and depended on by 3 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3db3b1e2c970675fec16ab583a52f28e7fc79d9d437d4ea5da9c8f511bca0b1e"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: SWBMacro (SwiftPM): SWBMacro (SwiftPM): abstractness 0.09, instability 0.10, distance 0.81 \u2014 zone of pain \u2014 concrete and depended on by 9 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"92e15f145a4ef55f38897d0b99dee391713f8106ac1f610c03f4ba6c83e616ef"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: SWBProtocol (SwiftPM): SWBProtocol (SwiftPM): abstractness 0.05, instability 0.20, distance 0.75 \u2014 zone of pain \u2014 concrete and depended on by 4 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d757f396d91be5284dd4e7c658d61fedadd8b26fa89ca7806e1d8a281a3b6d74"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: SWBUtil (SwiftPM): SWBUtil (SwiftPM): abstractness 0.17, instability 0.10, distance 0.73 \u2014 zone of pain \u2014 concrete and depended on by 18 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"af8d8944a432883f092c066bbffb4d5ee221f7827ffe23111752f36d51674a07"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CapturingTaskGenerationDelegate (LCOM4 50): CapturingTaskGenerationDelegate\u0027s methods fall into 50 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 50 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/CapturingTaskGenerationDelegate.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3593d0a21b3e0bd0a5d71e5e0630393fb7df1a31b489b01fbb1cfaa2da8bc4e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: TestTaskPlanningDelegate (LCOM4 47): TestTaskPlanningDelegate\u0027s methods fall into 47 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 47 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/TaskPlanningTestSupport.swift"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecf1eba7ec3f0ca1b7ed4fecb796de165e0c170b33d93d92cadb61e54c9705d4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: BuildSystemTaskPlanningDelegate (LCOM4 44): BuildSystemTaskPlanningDelegate\u0027s methods fall into 44 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 44 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":734}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d4cc7bfad14907af6e138517071d9c5ff131e5a05fa0d7c0969459e8fd2e435"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: TaskProducerContext (LCOM4 29): TaskProducerContext\u0027s methods fall into 29 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 29 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"19d5b234c6e0feececb80cb16a57a41d2952a62bf99c4b7bbe550c5f409dd32a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ProductTypeSpec (LCOM4 22): ProductTypeSpec\u0027s methods fall into 22 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 22 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"49558cb6b732199a9a1e8efaceae522220fe69723f2d43baf7d1ac34aba21ff9"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: String (LCOM4 17): String\u0027s methods fall into 17 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 17 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/OptimizationRemarks.swift"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1e524966bfd426794f1862530b00b782e6d3483195cff12150786209c7a551f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Array (LCOM4 15): Array\u0027s methods fall into 15 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 15 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/FileToBuild.swift"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"cca3b7dd6b0f1ddd88ccf65a442c5b96e076562a674c53981d20bd940c228282"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: LocalFS (LCOM4 12): LocalFS\u0027s methods fall into 12 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 12 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d205f055cd7610012e4d345424a982117c49370463eeeae68746578eb504af5"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SwiftCompilerSpec (LCOM4 9): SwiftCompilerSpec\u0027s methods fall into 9 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 9 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":727}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0d2ce3b0fcba25db4a96d6ce88952acfb9711581215452bc0740fddf6077050"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Dictionary (LCOM4 9): Dictionary\u0027s methods fall into 9 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 9 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/PlatformEnvironment.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"12ae9295a68777c13fa012977be0c274d2b076fe7d2f904e2fc344aec55b7579"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Sequence (LCOM4 9): Sequence\u0027s methods fall into 9 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 9 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/Misc.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4965e46c18d659c9d0a96f5167873f3aa447fbd0b692203e79a04dbc97a77eb"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: PseudoFS (LCOM4 9): PseudoFS\u0027s methods fall into 9 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 9 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":848}}}],"partialFingerprints":{"codehealthFindingId/v1":"0058efffe3f50e963d5ec09bac81dd6ee52878028ceb97027eaaa97089c1673d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CustomTaskTypeDescription (LCOM4 8): CustomTaskTypeDescription\u0027s methods fall into 8 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 8 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/CustomTaskTypeDescription.swift"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"59bf6033a550c7cf8b05f76995ec943bc9844424411d0d64fe70edc90ec0d5a9"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SourcesTaskProducer (LCOM4 8): SourcesTaskProducer\u0027s methods fall into 8 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 8 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ec99e6c72d4b7f1d8dc809d5c024c0ce26771291d57e29465fc2ca755f8ce8f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ProductPostprocessingTaskProducer (LCOM4 7): ProductPostprocessingTaskProducer\u0027s methods fall into 7 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 7 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a7d4dfb81df39c6d357c47f2cbbc324292adb12b72805c4748186bf4b01de3b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: BuildResults (LCOM4 7): BuildResults\u0027s methods fall into 7 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 7 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d4482766598f85777caadd7b3577a8f60688725bf54fd9294a2975638f46854"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CoreQualificationTesterResults (LCOM4 7): CoreQualificationTesterResults\u0027s methods fall into 7 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 7 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SwiftBuildTestSupport/CoreQualificationTester.swift"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"49e77395dc0b4228f61e277da1227af4f3c4a93193bb0be332e68386d4e6df58"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Session (LCOM4 6): Session\u0027s methods fall into 6 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 6 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/Session.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae3b74d6c4402f2fa4a44e6717860c88c2894c961cd0e5526e45449960451d41"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: WorkspaceContext (LCOM4 6): WorkspaceContext\u0027s methods fall into 6 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 6 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/WorkspaceContext.swift"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"910e31b7314ef5823996930544eb338b1cf5cb75cb414051fecc5f30de559861"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ClangCompilerSpec (LCOM4 6): ClangCompilerSpec\u0027s methods fall into 6 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 6 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":564}}}],"partialFingerprints":{"codehealthFindingId/v1":"31a50a79be97f4a0256a449fab812b0a9b48ce8f1b1f446de4cb4539d8975ed0"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Collection (LCOM4 6): Collection\u0027s methods fall into 6 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 6 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/DiagnosticSupport.swift"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"320edb31136a4fe72b31fca02ac93b16779d80e0c60aded4c63e220217e6292d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MockCAS (LCOM4 5): MockCAS\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/MockToolchainCASPlugin/MockCAS.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"6031d6c74537f2026c7ea23e5a639f4255738d023327da6fcc34001175697f16"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Platform (LCOM4 5): Platform\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"7164b98d4f8d9ed71b8fc63e542dcff5598b1d4bf04b163834f4330909e07042"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: FrameworkProductTypeSpec (LCOM4 5): FrameworkProductTypeSpec\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb67d4ef6a2338b0dbeeb1646af74e56869ac0c59f10a874a28e6dd153bc4906"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SSAFSourceTransformationSpec (LCOM4 5): SSAFSourceTransformationSpec\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":2106}}}],"partialFingerprints":{"codehealthFindingId/v1":"d06689bf487a4003ab045371f1f0d794e986646aae88a2e2f4faa42d9810a116"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: LdLinkerSpec (LCOM4 5): LdLinkerSpec\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"166b5da47f8967e06c24e5ba9d74f1586fddf88892531a0bac290a6de472da59"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SwiftABICheckerToolSpec (LCOM4 5): SwiftABICheckerToolSpec\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/SwiftABICheckerTool.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"78b061163ca6369be73538a3245253c2e5b296cdc03cb4a4a2ae9d4ef3de1b64"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: HeadermapTaskProducer (LCOM4 5): HeadermapTaskProducer\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"f84673cf1083b935d09b1ffb47c180b2f08690393e1d1596a8189d3264b7b811"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: TaskAction (LCOM4 5): TaskAction\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/TaskAction.swift"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"c337866629bec37d9e8ef712df641ef3f227746330a23c8295926fb025ab4686"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OutputByteStream (LCOM4 5): OutputByteStream\u0027s methods fall into 5 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 5 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4ba998be9c7bd8b64d43dc1b2d135af3b9d28a9c03ab6fb9640914cadbe7f79"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MetalCompilerSpec (LCOM4 4): MetalCompilerSpec\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBApplePlatform/MetalCompiler.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6338c8ba7278a741bea8b8f639be426d91aac10b5150b70bb1142dc53933c0a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: PreparationProgressDelegate (LCOM4 4): PreparationProgressDelegate\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"39f25557da1f5e2acbcffc82fae801bd75c8e086d3c6bbe8eacc659cee1c36b7"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OperationDelegate (LCOM4 4): OperationDelegate\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1021}}}],"partialFingerprints":{"codehealthFindingId/v1":"3053fd23a1b9dd96098e46ab6baedd06c6fbc3ac9ba25f232189f9a94ffd4b84"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: BuildService (LCOM4 4): BuildService\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBBuildService/BuildService.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"06c28ac4efa8e1679f4d97950bf7605f922f8f479aded60b6f9848b01e170eaa"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: StandardTarget (LCOM4 4): StandardTarget\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"242845a016677b4481c665374df0848ae039167c2360fca6544c81976d1c158a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ClangPreprocessorSpec (LCOM4 4): ClangPreprocessorSpec\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":2192}}}],"partialFingerprints":{"codehealthFindingId/v1":"66fcdf1a1684fb7b8d01c9d5d972b3bab8ffddc9af17d897566e12f40535767e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ClangAssemblerSpec (LCOM4 4): ClangAssemblerSpec\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":2228}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a2cc7d35af684752d489317bd097ed06a444affc07acb5cc3e065422a04dc18"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MacroValueAssignment (LCOM4 4): MacroValueAssignment\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBMacro/MacroValueAssignmentTable.swift"},"region":{"startLine":366}}}],"partialFingerprints":{"codehealthFindingId/v1":"e611b06156597cd8cbe51e9cea3ae7e3ecff3cc7504cec8f1e236d1a9119432d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: BaseTarget (LCOM4 4): BaseTarget\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"a64974eb087462eaab34c76ceba5b3967c76964813f1664fb0eec658db821c6c"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: XCFrameworkContext (LCOM4 4): XCFrameworkContext\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/XCFrameworkContext.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d37f6a9d568829790cef5686bf7f8bfb3b33b6151b734194f0204164979cf7e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ClangCachingKeyQueryTaskAction (LCOM4 4): ClangCachingKeyQueryTaskAction\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"e00b178576d96a286de972f6e582270d8b98bef29255b4f1b58aea71dce26b75"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ClangCachingOutputMaterializerTaskAction (LCOM4 4): ClangCachingOutputMaterializerTaskAction\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/ClangCachingOutputMaterializerTaskAction.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa62a1a63722253ca638e226cff946afa015f47aae5726fb97e1edbd4ed542a4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SwiftCachingKeyQueryTaskAction (LCOM4 4): SwiftCachingKeyQueryTaskAction\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2e136adfbdf7fceb2a33dd743b41b4ce1bdf4788e3764dd0bfdee57bc13e86d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SwiftCachingOutputMaterializerTaskAction (LCOM4 4): SwiftCachingOutputMaterializerTaskAction\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/TaskActions/SwiftCachingOutputMaterializerTaskAction.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c0611fc522c24bdd587301e86c4f66f6f90d223d2a3d71c2e9718affb97790c"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: HeavyCache (LCOM4 4): HeavyCache\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/HeavyCache.swift"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c8aec22c491fb506bcff4a9daea00ac34ebdb789590317f19d94599029d6f89"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Int (LCOM4 4): Int\u0027s methods fall into 4 groups that share no field and call none of each other, against a bar of more than 3 for this run (LCOM4, configurable \u2014 your repository\u0027s bar is the one quoted here). Each group is a set of methods reachable from one another through shared fields or direct calls, so 4 groups means the type has that many internally-connected clusters with nothing tying them together. Types whose shape makes a high count expected \u2014 and which would otherwise dominate this list \u2014 are excluded before this row is raised, so this is a genuine split candidate rather than a metric reading. It is still a shape, not a defect: confirm the groups match responsibilities you can name before splitting."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBUtil/Int.swift"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55bb2a56c923dc6e9c9c123a629c1cf182d7273660a9fd09f79d065ad02deb7"}},{"ruleId":"D8","level":"warning","message":{"text":"Coverage not measured \u2014 Swift suite: Coverage NOT MEASURED: the Swift half could not be measured \u2014 the Swift suite in . produced no coverage export. Coverage is excluded from the score rather than counted as a near-zero. The named suite step is one the repository\u0027s maintainers can perform; once it passes, the real number is measured on the next scan. Alternatively, commit the lcov/Cobertura report your CI produces and it is read without a re-run."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"62e63e619c28f057e129f2997c965d32a457366a9ce18ca019ffb6bdfba85c99"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: singleFileCompileMetal: Skipped \u2014 arm64"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildCommandTests.swift"},"region":{"startLine":411}}}],"partialFingerprints":{"codehealthFindingId/v1":"99ccfa26ec77bc6fdcdf8a5890ded28cf1ae2240777c2645e0ac591f0dc57405"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: incrementalMetalLinkWithCodeSign: Skipped \u2014 arm64"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":6249}}}],"partialFingerprints":{"codehealthFindingId/v1":"f260614ba265c65085170cd17d0a3ce7aca376d73bade43349a2b4898f3e97af"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: RKAssetsIncrementalRebuild: Skipped \u2014 rdar://129991610"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1117a1a52d39e9fc03a50100f7bef689e0ecd4efac19972f360bc4a4291f6e4"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: ASanBuildService: Skipped \u2014 CI"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ServiceTests.swift"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1c99ad8334263ff500a2e9fa654b058c11fff8a218af6ba5ed98fb3df33b5cb"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: androidPlatformFilterIsActive: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"03e1f7a23cec949ebdd1a5a579de1352a42bb6a4b3092a7349c8fdc294243c93"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: androidCommandLineToolWithSwift_swiftSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":439}}}],"partialFingerprints":{"codehealthFindingId/v1":"db434a89a699d92d8376da7848b84901780599b3c89438b1a2bdc5a73291b5a8"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: androidCommandLineToolWithSwift_toolchain: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":447}}}],"partialFingerprints":{"codehealthFindingId/v1":"01d20e763db5c1158d06b135b86264a6448b8188bfa58cd9157ab6d41758850a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: assetCatalogCompilerOutputParser: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBApplePlatformTests/AppleCommandLineSpecTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e03b268d09323b5d32997dc7c17c9d9129efd46c830ff88297f45fb47d50ef1"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: interfaceBuilderCompilerOutputParser: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBApplePlatformTests/AppleCommandLineSpecTests.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfadb8302ea65164fdd2b5d03ef09e322a617f9d672a00f5bb4475cdc1b78c0d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: stringCatalogCompilerOutputParser: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBApplePlatformTests/AppleCommandLineSpecTests.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"42599f1f61003983039db3ace48292cb27e1f95a263e93492553d062db0ac91a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: extractExtensionPoint: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBApplePlatformTests/EXUtilTaskConstructionTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"d15f219e19fb1002a272ea2e42f7b6a9eeeb63b5ef0741c8edb91f48f678006a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testDynamicTaskScaling: No conventional assertion call was detected, and 5 of 6 tests in \u0060SWBBuildSystemPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemPerfTests/ClangExplicitModulesPerfTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce97020b72494289f9a2ecd25a04a68e78b8ab2872a8777cff4083bc08d0b15d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testScanningIncrementalPerformance: No conventional assertion call was detected, and 5 of 6 tests in \u0060SWBBuildSystemPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemPerfTests/ClangExplicitModulesPerfTests.swift"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"66f1230f902818c9651667c4d89677f6e89d863c7d78ae23d46c128b826c5077"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: modulesVerifierPerf: No conventional assertion call was detected, and 5 of 6 tests in \u0060SWBBuildSystemPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemPerfTests/ModulesVerifierPerfTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cc6bca44e7c727516d2eccb9077b2e682c39e64526e588688cbfc3f129fa215"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftDriverBuildPerformance: No conventional assertion call was detected, and 5 of 6 tests in \u0060SWBBuildSystemPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemPerfTests/SwiftDriverPerfTests.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"77b84b3be246344a3f9ed258ce4476f0635d6b0f20e15b9b3c6bfe0a6c7d56a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuildPerformance: No conventional assertion call was detected, and 5 of 6 tests in \u0060SWBBuildSystemPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemPerfTests/SwiftDriverPerfTests.swift"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ec88fb3e8ee73d843c03977bf970984787dcae1645087dc7f67e674b4dc6f98"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: apiDigesterDisableFailOnError: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/APIDigesterBuildOperationTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf1cd6fd845244ef7ab32d15468dd6f67b8cc9fa6384cb82cca8052b20348dcc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appIntentsNLTraining: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/AppIntentsNLTrainingTests.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"693b3199e97f869e1ffdd0950d4c29b8dda0fc900de1d39ca715043b923a8f46"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appShortcutsStringsValidation_InvalidStringsFile: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/AppShortcutsStringsValidationTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"38eb258574ba6b24f310187434120b3b1692b3f7258bb5a69c2b79efffe58946"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appShortcutsStringsValidation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/AppShortcutsStringsValidationTests.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"15be8466913a002a7d56362a1543a5ecc5527c75fc608f079eaf32d1edf70717"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: automatorActionBuilding: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/AppleScriptTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"695436e545f40b0f4c967c09c072f6c26abceb783cde6880751d6a67fe060db7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: LLBuildBacktraceRecording: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"edb79d23ce18aa761a5519520cdc574665f9e24b345f631ae49cab7b75bea27c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: singleUseTaskBacktraceRecording: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"6dec668f9485fc1df365f27e040a544378c0442af972fdcd1ce0a0c0747e463a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: backtracesForDeletedOutputs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"99804367078edddb10d69a117a73067007c4a6ed9e451e121837ad89b2ab0188"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: backtraceOfAlwaysExecutingTasks: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"9674a965e7ba7e6fa60d37c4851d9ceb7433afc9b672a1f1daaa2bf6e20f3c4f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: mutatingTaskBacktraceRecording: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":385}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8027676c515f9a53a9416b5a8532c5cac4022b8b80b9aad59d12e5147eda3dc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: backtraceTextRendering: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"6000b723e5aa24bf557643b9d18da239078c7dc645e84c9760a2359ef7ab5e03"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: signatureDiffing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildBacktraceTests.swift"},"region":{"startLine":579}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba3336e67453ad8d442d853884e7b1eb74f1d5a7657f4dc95b4b94a5290afb33"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: singleFileAnalyze: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildCommandTests.swift"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"52dc385a6195762558600269a5701f9404e8bd9b0abfe158e865c5fb1871d3d6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftExclusivity: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildCommandTests.swift"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"6748b3e694204ef3e963688af6dd035bc2408e5173415aaabf8e0ee580a0a930"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipDependenciesFlag: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildCommandTests.swift"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"827173a9e5788d2cb06a9522fbfe36c56a488f91941a1eac7d0af5f80c4af733"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyAndResign: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"b41a0ab6e0493061bc883f2c774acdac7cd1cb7192d9ea80d3647dc35c6d9cab"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticNoFalsePositives: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":537}}}],"partialFingerprints":{"codehealthFindingId/v1":"7037a7c75f5e18982474bd71506e7b70dfeb63e85ad301e16c0418d67249aa1f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticDoesNotConsiderCopyResources: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"8853d47ec5ad134ed12b95d43aa9f5c49779e6d33e6b6e9d104b79300ffc6a8a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticConsidersPackageTargets: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":555}}}],"partialFingerprints":{"codehealthFindingId/v1":"613e9103149782c25b3a71ee39f0728efe4c89d4c72c21e2517b803fe34fb642"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticConsidersConflictingPackageProducts: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":565}}}],"partialFingerprints":{"codehealthFindingId/v1":"6df1f55f3426d3e62491da111ff758fd4e6f6526c06e847523d9882cb85d3b95"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticConsidersPackageTargetsAndUsesDynamicVariantIfAvailable: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":575}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ea0eb240a09904dbfe822cc030747162ead45df0c94b1a5784e4d2b4145df10"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticUserDefault: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":584}}}],"partialFingerprints":{"codehealthFindingId/v1":"0462ae73d2fac36b9163111a2164d0f176898ca0f928ffd64018a5550b509b23"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnostic: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":593}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e79dcf178ddad294d4960623450a25b67dd4fc0ccaab03fc03b0474bc9cc3fb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticUsesDynamicVariantIfAvailable: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":829}}}],"partialFingerprints":{"codehealthFindingId/v1":"585f6044307dc9f83fe6a707c01ae1d96a528db288c855afaeada8a1e71128c3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDoesNotCrashDuringBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":838}}}],"partialFingerprints":{"codehealthFindingId/v1":"9450212b976b9edf3c1afb9afadcd56c1c84130abd5e6e5e289fc6c70c79ff3f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDoesNotCrashDuringIndexBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":854}}}],"partialFingerprints":{"codehealthFindingId/v1":"77745397556aa010dce7b4b25b43f806017049d054a6f20e22ee9d4b94b0410e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticForDylibs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":870}}}],"partialFingerprints":{"codehealthFindingId/v1":"203aad155111860b138fad6d51e12942c9090230873833edd53a4ddb206d3432"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticOptOut: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":881}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c147fd89ee96340a6c724f9f5c49b142680ca7c199c164e2fcc5c6286d31a9c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageDiamondProblemDiagnosticWithBundleLoader: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildDescriptionConstructionTests.swift"},"region":{"startLine":1050}}}],"partialFingerprints":{"codehealthFindingId/v1":"555b690ec86b46b945decae758a526ccaba9a0606d03394721a4a3e3b2fd531c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: commandLineToolAutolinkingFoundation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"a54844e6ad68e0dbc696f06361a657aefbcd725357bd1ce4b08104317aab8ae5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: commandLineTool_whitespaceEscaping: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":374}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6c8992dfe88294aa49033b66eecd748dbf5449722e6c4c9ed59fcfe15f63fae"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unitTestWithGeneratedEntryPointViaMacOSOverride: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"cee4414f23e59aaf53af40ede7df2d5af13c0a540238270079cc72f68d64b038"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: simulatedEmptyTarget: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1084}}}],"partialFingerprints":{"codehealthFindingId/v1":"085416c36822d3878b4dfbd162bebbb261673e704c07f23b01f272e527249849"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleProducersEmptyTarget: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1109}}}],"partialFingerprints":{"codehealthFindingId/v1":"83571391febefeb8b723e4d4e50ba65c3326af8ca3d023652a91d6757da76084"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: moduleMapGetRewrittenIfSourceChanges: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1273}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd39360bf4be1be0cfaf2c7009657ff7da9e7ee4173164afb09ee96a085c418a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: missingShellScriptInputs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1358}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4b5a9bce363e84ae92917f21f33f6c6ad2aa73facce187cb87b1cdd859d77a3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: minimalNullIncrementalRebuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":2619}}}],"partialFingerprints":{"codehealthFindingId/v1":"e770020f43fba8ec3ff7180b3d67d1db8bac057dc32f19455415f18bc373d4e4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: infoPlistAffectsCodeSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":2738}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9a60dca76eaaf8689c99985f4d52677188638ad5a893b339b0be435f4f58ff1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: configSwitchNullBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":2803}}}],"partialFingerprints":{"codehealthFindingId/v1":"95da83cb873d27819a9e4c6f63fc456c960e4f3ca23b29a8e1805543fc839b83"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: stubAppNullBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":2844}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0e19938fdf0e772da3b6f5db89e02271b9d8586cdb464c3de5b93439505dee1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptIncrementalBehaviors: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":2988}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4e042239a5f4db431960745b47bfda413f3445b19c61980cd943e557619a28d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copySwiftLibs_preSwiftOS_macos: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4047}}}],"partialFingerprints":{"codehealthFindingId/v1":"62ee4b3b98fcf1fa815b5d7bddd7fbaf1ab4aa067289b8b7226e58fdf7cbaa92"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copySwiftLibs_postSwiftOS_macos: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4056}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc06515574386a14758b3e7786eb318df93ef57051d67eeea3d3762d8f977ef8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copySwiftLibs_postSwiftOS_preSwiftConcurrency_macos: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4064}}}],"partialFingerprints":{"codehealthFindingId/v1":"093969ec49c7abaecce8e16413e7b245f8db9e236ffdaa7fdf6a03522a9eea81"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copySwiftLibs_postSwiftConcurrency_macos: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4071}}}],"partialFingerprints":{"codehealthFindingId/v1":"b384208b2b50b73fb6f890b76501d3e99f8443fb2f268060e2fa4fd11e343c26"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copySwiftLibs_postSwiftSpan_macos: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4078}}}],"partialFingerprints":{"codehealthFindingId/v1":"7db875e423ba9cf1e98cb79d17fdd83c4e7328c8034fed1245331f1ca81e8408"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildContextDependentHeadermapNonDependency: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4830}}}],"partialFingerprints":{"codehealthFindingId/v1":"6dd4b7ffac5987544e56989d8eb4ddae4bd842de327bbbad267fc6fc6071b4ba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codeSignCycleInEmptyTarget: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4919}}}],"partialFingerprints":{"codehealthFindingId/v1":"96e402aa19f2607144fea1163ea58b0cc467e871c447136f82cd789b74c4831f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codeSignCycleWithInstallAPI: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4953}}}],"partialFingerprints":{"codehealthFindingId/v1":"d782c1e44503cc14bddcddad891e1d62f6d26ba6461ff9fd11ed2820df344c45"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: yaccRenaming: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5074}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc483bee0921fd647f92c18169910e4f695892095db249062af8d64445ae0fe1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftSubtaskReporting: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5136}}}],"partialFingerprints":{"codehealthFindingId/v1":"896757e83b025dc801023bc889d0925c3cb618f0cfc5c5da53f0b49d28e75f3d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkInstallAPITBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5416}}}],"partialFingerprints":{"codehealthFindingId/v1":"3972d0ec0d4aeac971c01f51a6310a86b66f112f85377591567a61590214cb68"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkInstallAPITBDSigningWithBuildVariants: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5420}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d8189632c92887854ddb0d9a7f37c34e876db97804081180c0af79e7621c63e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkStubifyTBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5425}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f3d395ac35b0909ddcce0a84d3784cc7abd33d2bd9830941653b5d08f412210"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticFrameworkInstallAPITBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5429}}}],"partialFingerprints":{"codehealthFindingId/v1":"57a6b55e1bb167c7aad586fac7bb653e0fb9cf4bfd3f7a34026cf264e4f70a98"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticFrameworkInstallAPITBDSigningWithBuildVariants: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5433}}}],"partialFingerprints":{"codehealthFindingId/v1":"52f80d0d83742a503661fa12f882e7a272402739655a63fc79121d56da81eb61"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticFrameworkStubifyTBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5437}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6f0c30b359c3561988ffaf6d809f9a611ae505ed35901eb405278a3934e498f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dylibInstallAPITBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5441}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cb24cd6ccff3ef92a97c4b67fc37f11a7c2da707f0fbcb4134b84a76a441d1a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dylibInstallAPITBDSigningWithBuildVariants: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5445}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c159b779ac8f06a4d1de119b7b34e026329c62a21db06367f4f59f430a9f81e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dylibStubifyTBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5449}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e1e0d23e8ace9e536681d5011ad02aaaa3248b387311ae01ccb9a1f25b358cb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticlibInstallAPITBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5453}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8a6d97e9bbf0824a391a314cb4bfc293862803670c8c61a370922ba80e5c8ba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticlibInstallAPITBDSigningWithBuildVariants: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5457}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cb18b654bf5bf8ec8ae08a24406a1d4696a81594019b306bb62c085b070a813"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticlibStubifyTBDSigning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5461}}}],"partialFingerprints":{"codehealthFindingId/v1":"085c1f29d4668717533c11e971161bb56fc2e718cda59e9d3186428b0f457bd9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalFwkTAPI: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5466}}}],"partialFingerprints":{"codehealthFindingId/v1":"02b73a789bb235e44b28c79fb0bac323ac6fa63805ec77331f79673d219a7717"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileMissingInputs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5524}}}],"partialFingerprints":{"codehealthFindingId/v1":"979d2d821557f115345f52301587ff99187ce68cf1ce538e0f0a61700c95a296"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multiArchAndVariantNeutrality: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5713}}}],"partialFingerprints":{"codehealthFindingId/v1":"10e622901df75eba1b8d7875d9aa6efeb2bdf4e671cd842624b6b69293344ad5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetDiagnosticsRestoration: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5851}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e2c12c5eaa8074231b45e4d4829a0a049c28da198612e58e865eb5747bea89b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkerDependencyFileDirectoryCreation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":6325}}}],"partialFingerprints":{"codehealthFindingId/v1":"06f9e67878af9c676c7cca02733a1b04cf5c369a181ac494476ee3a4f73279e0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalCodesignForCopyFileChanges: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":6365}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f0e585a7d254c723ca91af0cd29c36a0ff630f0db66cab42abac31a438a20e2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalCodesignForCopyFileChanges_iOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":6608}}}],"partialFingerprints":{"codehealthFindingId/v1":"b945acc7fcbe1dc6afc32a3e4ce2f8997ba41135bd0d121ec64f72bbc163f1cf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalCodesignForCopyFileChanges_MixedOnOff: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":6816}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffd36c2ec2a179b28843144e0badbcede1fcb78d844794a2b078a394d773e3bd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testEnablingSecurityArchBuildSettings_iOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":7289}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd05cef76944d6b1b1d564d2e583e454dfb0e64f888a6694a21ac11c1e6c989d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testEnablingSecurityArchBuildSettings_macOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":7294}}}],"partialFingerprints":{"codehealthFindingId/v1":"c21aefcfe4a7fa57f63faabf089bf92a16bbe978b2f46ee90fb76451d005f9df"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: wrapperFileTypeMonitoring: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":7299}}}],"partialFingerprints":{"codehealthFindingId/v1":"e48a575633425f3fa34d08eb04d9778e2a823da1ae71b1a21cba69142e5d988f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: safariExtensionLaunchServicesRegistration: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":7737}}}],"partialFingerprints":{"codehealthFindingId/v1":"aea6e9aa19d3d2732ef589929e35d8ef09ce989272f5032c36af021026acf38d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: missingInputFailsBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":7897}}}],"partialFingerprints":{"codehealthFindingId/v1":"80e6423bd07f64d4086ffdf75c0e88661728cdc46b0c48398eec74b0d8f33af9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: progress: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":7943}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ed364b8af9a135f82f863d7e942a28a79416c3c24a5f82e0b350f5a7d40d5fc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftSDKToolsets: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":8096}}}],"partialFingerprints":{"codehealthFindingId/v1":"130077a1510430f168a15cf36785381147356fa1a04e7b39c86d8bb5a6e69989"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: immediateCancellation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildTaskBehaviorTests.swift"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"5045f598101d1c91ebb98ac27a481eaa4d8aedc23cf4f5dc2448e853dc785cd4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: chainedMutatedInputErrors: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/BuildTaskBehaviorTests.swift"},"region":{"startLine":654}}}],"partialFingerprints":{"codehealthFindingId/v1":"21730f75b4e820ae7601f86cdd18a2e99f8f5ed468cc5a25437557875dd64bb2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: headerDependenciesOnSystemModuleOutsideSysroot: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangBuildOperationTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"b77f12146f3a760ea563ae85000a0596a42d2b574fa892a0e9d62a92a92a3fe7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assembly: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d548ed765ef57c5ab1b02f98f39d8986e4e6c137e6a50d6f20b660d66167f1c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: casScanValidationReadsIncludeTreeIDs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a47a950204bd797ae498bbd7a81220723cd24ff56752840c0f4b11aea8709c3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingCppModules: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"c58b33590ae3562c5fbf933837222334703fde57e3d9eace02d68ed732ed44b9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingBasic: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":217}}}],"partialFingerprints":{"codehealthFindingId/v1":"f14711c0b05fb215fd94a8c0569becdfbc463ce27b5641c9085245aa1fda9358"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingBasicPlugin: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"c543262e4ce407c6f474ec8949e53b86fec9da66b441de673b1330c1f707abec"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingPluginOniOSPlatform: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a143edb5f5fd7a8707a90520cfde3f48cf2ae8746870e4617fb4a7bdf420893"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangCachingImposedOnPackageDependencies: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"57ff32ea824218ddef6ef9cec990af06493557f75d84f52f609cd448a36702ff"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangCachingConflictingSettingsImposedOnPackageDependencies: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"9197a433f2f739935a964b0e491d116d68dc23489c40696ccbcd8608f2303c53"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingFineGrainedOutputsDisabled: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c45bf4b42bdc28614e82fe18c7504c2baf147b51bb796dd292574b4e6c6612a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingFineGrainedOutputsCompileCacheDisabled: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":760}}}],"partialFingerprints":{"codehealthFindingId/v1":"b371f9c9965b9b3f7ed7cf19939b3e27a051ebe6cb305e243ef19ecbd8a2f0b0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingFineGrainedOutputsNotSet: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":838}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0bc9484881534d65aab7fa5ab70d3858a6104bfe831eecf8f855d6f1bdd4d73"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingFineGrainedOutputsSet: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":849}}}],"partialFingerprints":{"codehealthFindingId/v1":"db4c077aa1f2daeedf162eff102525d46c1da9347690c96454323285fdf125a9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingFineGrainedOutputsVerifySet: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":861}}}],"partialFingerprints":{"codehealthFindingId/v1":"5995f3ba1c1630befd824f830170bbe8d8d62551f8db72a88952e5e391e24a0c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingModulesBasic: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1051}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0a25fd50fa3bd57056bb0914cb66312a159e8df3fd61ebc92ec1e7ece978b67"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cachingModulesBasicPlugin: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1056}}}],"partialFingerprints":{"codehealthFindingId/v1":"40e65eea927e875eac933e2ebdd9e6211562f1122c30b320bf8ed89e9e7d8f5c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: rebuildAfterEnablingCaching: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":2279}}}],"partialFingerprints":{"codehealthFindingId/v1":"8662d67c1ca1a11377445f9e6ae9e6f5725f6eea1699b808c6cd28c0abc235ba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: validateCAS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":2336}}}],"partialFingerprints":{"codehealthFindingId/v1":"dca61cfcc890e35ef1cc2d871c9ac8973f613deb8339d65b361bc611477cf38d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: validateCASMultipleExec: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":2503}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a3530db8c396c79809fbd8699c73c4450ab2bdc34adde75cef67e77587870ad"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModulesBasic: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"d70ec8fff15d11683edafd1d8316cc641175eaaa06366b38ee386b9836a900a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModulesLibclangOpenFailure: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d7dda95d37db45d61340833442dc9f18c51ff8a4710755e5b60c100922e4f52"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModulesWorkingDirectory: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":431}}}],"partialFingerprints":{"codehealthFindingId/v1":"849165e5502bb967c2029313c76d26e7400fc193ec72df4a4f247b3c94314c10"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModulesUmbrellaDirectoryDependency: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":612}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fb70c353dde5b7b710b5a0a257954786e3f4f6f6a1ce9c9aba0e1fb14d365fe"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompileDiagnostics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":897}}}],"partialFingerprints":{"codehealthFindingId/v1":"a98bb20b353f16230ff0a1e45b54be284ef2cc87f1f165b8ad50502e715416cc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: analyzerRequestedPrecompilesDoNotAttemptSerializedDiagnosticsParsing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"9072898b80b829ff696a43c5612a87ce6d58867cb9e3ead4c6de4f2fb0b9bc87"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scannerDiagnostics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":1053}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dc55815720efec0442e2df2f18de5cd913e45c52593945cae1ea20012f7242f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sharingBetweenTargets: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":1399}}}],"partialFingerprints":{"codehealthFindingId/v1":"4303dc4a6281c2796a1b182284ca7d196e2b33a699aed344a4e4e129b1dae1f8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuildBasics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":1610}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6929512761ab8dfb228913ce5128c627666775f77300dec243725159b1dacc2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalTUChangeDoesNotForceModuleRebuilds: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":1683}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dd43f48072476d571d2a912ba8b22fe4c0d0d2c15e4a917fc6081d332f2d09e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalHeaderRename: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":2423}}}],"partialFingerprints":{"codehealthFindingId/v1":"b175ba178f2aaca079ffe2f814b948f1f25e85ed0db61910c5c26d09f15d7f2d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuildHeaderRemoval: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":2552}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab52231f8ca570ae0842ce543466d81ca0a0f1089909411fbeb7cf510613b848"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: addingTranslationUnit: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":2675}}}],"partialFingerprints":{"codehealthFindingId/v1":"abba0a704bb3b9834e7e6973f368123badf3404866135d84f2d8cb0bec0dbe74"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyInfoIngestion: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":2844}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ae4350687daff503013ff9d22074222fbee902e5fa6bc4bff1e42de73393035"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModulesWithResponseFiles: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":2909}}}],"partialFingerprints":{"codehealthFindingId/v1":"09c24eaa40145c31ba8c012494615b68784b460e825657d7e39f68b1bb4b25d2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: disablement: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":2961}}}],"partialFingerprints":{"codehealthFindingId/v1":"198cd7e106076c14ba898e6b1063643d62eda08d09859301fe9f2e3c6cf3a422"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: diagnosingMissingTargetDependencies: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":3012}}}],"partialFingerprints":{"codehealthFindingId/v1":"16c0ad7daceefa4f95c959a6d478cc44ce575aad2c0b14ec4b0b96dc3644a43c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangExplicitModulesScannerDependencyRollupIsComplete: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":3114}}}],"partialFingerprints":{"codehealthFindingId/v1":"d355a0438e349d246960875dff4fb2bfeb653dddca9b20e8d4c9c657acac5347"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModulesProducesCorrectDependencyInfoWhenPathContainsWhitespace: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":3234}}}],"partialFingerprints":{"codehealthFindingId/v1":"e80ca39317ffa96166d2942c67250954fbb808dcc22d0f5fd362d9758ad43f1d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangStatCacheBasics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangStatCacheTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcc9959601ce36022426de312958d1bd470d08a576875e42116c82eeedf836d3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangStatCacheUsageBySwift: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangStatCacheTests.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"91360f83f359c12a3c0343198b48a77334aac400e7f91adda629fe9e4143d8bb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multiStatCacheBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ClangStatCacheTests.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd7d096992da13352fa70e41216cafbd2e5676f3b412cbba170fbd09b4c601c4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cleanExternalTargetsLegacy: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/CleanOperationTests.swift"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cd38ae4910724332657f151f0be7ed53558c505ccfcec119856712dfcec10c0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cleanExternalTargetsError: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/CleanOperationTests.swift"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"22e8a5d7217c6cacd8508e641f3ba0f47df4f6bacbbeeefe12f3d0debafc6852"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clearCachesEmpty: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/CleanOperationTests.swift"},"region":{"startLine":449}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f81aa3b583168ae3bbdc674518a4cb07794223842477662731a7a6eee278f68"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: entitlementsModificationInvalidatesBuildDescription: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/CodeSigningBuildOperationTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc8b20c7cc4ca0361da668b961b5d8361fa5f77c0ddb901d1af48156c94f3a78"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptWithSymlinkedInputRerunsWhenTargetChanges: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/CopyTests.swift"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"73d5e4f8524997681140e7a238edfca3fab3b1fa0cc09d6942fce7ddc876fbab"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: outputParsing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/CustomTaskBuildOperationTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffc6f3ab1cb06689566718beaa991d8434f451b7b6c22a212a6583a7cbe06db5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: simpleCycle: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DependencyCycleDiagnosticsTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8194f952c3149b637e17d67504aabfad0d6ee34b646409bec6991a246172b5f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyValidation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"207468405208ff8ecdb3f73106411a98239c36a27e7245e80925b7a9da6bf1ae"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyValidationError: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"0af7673dfc2d56a2c600135b25707762ef664f1ecdde9e791106bb7be689a8bd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyValidationWarning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f0e83bb11ff324cdf0f3f0bdbd07912511d1526a2b3901174b4b9cf9758691e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyValidationNone: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"e18defd28a1f64cc21c86c5db2d258c6b759da765ba7a98a051b2a46ec4a08e6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyValidationModuleCache: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"812f3cbc1e121aab96693bfe0dcfe843ed0566bd87a411785ce7496b68b06da6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: developmentAssetsExcludeNoDirectory: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DevelopmentAssetsDiagnosticTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb17001c113cecdc76f46bd061642be507087b2027ac98ae881ffe94c02b6c2f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: developmentAssetsExclude: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DevelopmentAssetsDiagnosticTests.swift"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"218a46daeae227591a66430fdf664d8f0bb4eb70cec8532ff2540dda8570b804"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: developmentAssetsExcludeDeploymentPostprocessing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DevelopmentAssetsDiagnosticTests.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"169155d1d5ae32534937815823405a60e2377fbbb131024b16c34abc5dd2a0c2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: developmentAssetsFileRemovedRebuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DevelopmentAssetsDiagnosticTests.swift"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7e689947c3789c5ef14b3cd30616b99fc85d14b6813486d068d265cbd905916"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: developmentAssetsExcludeNoDirectoryTwoProjects: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DevelopmentAssetsDiagnosticTests.swift"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"d726e42f7884c641a68efac5ae2f77ef0e2c27871475d719fcee45ea14e2e069"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: developmentAssetsOverriddenSRCROOT: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DevelopmentAssetsDiagnosticTests.swift"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"67cae123b8a69809841ac44a811d4f635b652888926a693d80003bbcb246c34e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetedDeviceFamilyFiltering_macOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DeviceFamilyBuildOperationTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc318e8304a4fa544c2aa2095d5bc3d9f2a30af9b4a88f09f7d130772315ae9a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetedDeviceFamilyFiltering_iOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DeviceFamilyBuildOperationTests.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"9adb77b3de34d901b08365db834d6665a0e5e98ae15ad206eb0990c36d41bf39"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetedDeviceFamilyFiltering_tvOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DeviceFamilyBuildOperationTests.swift"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f7a853ad6aa833ea8cd3886b1bfeb341a39c290484e8127d054804440b15000"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetedDeviceFamilyFiltering_watchOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DeviceFamilyBuildOperationTests.swift"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"a58dfa9df8b9e14000297fab1451689b29f2b9e3815f313594ab9baf451ba098"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetedDeviceFamilyFiltering_visionOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DeviceFamilyBuildOperationTests.swift"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"52744192ccf08c88441a0806ffe9564e64e4d9641aabde19915e8ccd1f719d3d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: discoveredDependenciesSetupFailure: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DiscoveredDependenciesBuildOperationTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ec0658d4bd990204854d54914cb8606f5feb1bd9758b4355c3548e65b9486ee"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: doesNotDiagnoseMissingTargetDependenciesForDynamicTargetVariants: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DiscoveredDependenciesBuildOperationTests.swift"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c1fd69b0e2fba6e6ff27643ef9b808e8d60113fe9b4115cfe7a8bb77fa53594"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: complexSymlinkCaseWithDiscoveredDependencies: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DiscoveredDependenciesBuildOperationTests.swift"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"27dc178103c2f7d637a80c767200d9cad089bc917303b741ec3388c279baa325"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multiPlatformAppWithDriver: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DriverKitBuildOperationTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9d309549204c741e3ab32ed8e3166bdff2a0bbea6d29d421a9d28f2560d36f7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dSYMAccompaniesProductRebuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DsymGenerationBuildOperationTests.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"78df4c0c2534c857c73d4e4471c9778988cdf4038713c958e1c25b56dbd0cff8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dSYMSwiftDependencies: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/DsymGenerationBuildOperationTests.swift"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"54cad148eccd2db482e3097fe8f51ccdb507518aa0363fb58bf2df799ed04f4f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: validateEmbeddedBinary: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EmbeddedBinaryValidationTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"5797a3942f5c9c6a7eb37216511b3bdfd3c928e1e6a87eb10163bfade0755b04"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSAppSandboxEnabledEntitlement: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"76b8abf717669cdfa7526c5551cffabc5594bb2bfb8f6a99a150f41cada1b22a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSAppSandboxEnabledEntitlementOff: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"47802096ae1d0d2028f230c979a2e5985196c673924b4915ff2823661310a6a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSUserSelectedFilesReadOnlyEntitlement: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"065206e5da638e50fc66b4c385f79633ee139d1ee059c45bb2b250d509fbc50d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSUserSelectedFilesReadWriteEntitlement: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf527fa0078e65a19aa0d04b1ae657c3f69af343ed15398609dfe46ace41bc6e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSEmptyBuildSettingsBasedEntitlements: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d56d64f2009cd44adf30890ffe13e20614f04c8091c369575d52d7ba89c023b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSAppSandboxEnabledEntitlements: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fccad63f19c9d83634d7eb1b9163fe474691c1aae5e3169c0c5040bc6be174c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: iOSAppSandboxAndHardenedRuntimeBuildSettingEnabled: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"a828e3ed2e3a8f0da825d2054ac88e5779a35c56991bae6a0ad3d9082b40a97a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSHardenedRuntimeEnabledEntitlements: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a534427b3116f09aa2f3ee0f22690c43531815aa73975a77bc72df1134c3b88"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSHardenedRuntimeEnabledEntitlementsWithConflict: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/EntitlementsBuildOperationTests.swift"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"1acdca62ccf0b101dea6f1d9e747378d6adacd8c87068b8434ab62ff719b9d7c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: locExportBuildsHeaders: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ExportLocBuildOperationTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"9de07ca5b344d2b13a479929708dc4930a4ee0d614f313085d06f736f5eed956"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: locExportGeneratesIntermediateStubs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ExportLocBuildOperationTests.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"39d66dfe539a79a6835130cc8dc9568f3cf99e9c57ed91d475c66e04a8aae9a1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: realityToolCachingBasics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/GenericTaskCachingTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ebdd0c228eb5adfa895c958b781daa9067792b627d7bf23d1f5fa27e38027ef"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ibtoolCachingBasics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/GenericTaskCachingTests.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd2edbe33260a968028ed7d5709c1e50738a90bd3a8e892d45e674408b8b1742"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogCachingBasics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/GenericTaskCachingTests.swift"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"4aa0f87aa40391ed668933b47f1c2bddde2bf01614047ac1095f8e1c9b73415d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: repeatedReplay: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/GenericTaskCachingTests.swift"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b6f0b7581ab6f58554c886d3d4d544b377ba852b6411a94e546b5447aa3515c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: implicitDependency: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HeadermapModuleCompatibilityTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"098e6b6958488d4a3f0c148df6eb9069407b41b667e5c8fadfb2793dac3e7d27"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testHostToolsAndDependenciesAreBuiltDuringIndexingPreparation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"658b3de175628fa30703541217c24e3da677ca7c0ead1245b46e69d6a2593393"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hostToolsAreSkippedDuringIndexingPreparationWhenUnapproved: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"2996424c2d998e5a7ccf3e23f6ca9e2527544467f887c72b6840b1db5a5c1a38"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hostToolsAreNotFullyBuiltWhenNotPreparingDependents: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":631}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fd67a320b6a053bbacac22b279368e31e133508bf5597a9547685926a2ef83b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hostToolBuildFailuresDoNotBlockDownstreamModuleGenerationDuringIndexPreparation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":711}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf625c81c98bb82ddf9292b99874792489215f57139bee5658c2427103039947"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsConsumedByScriptPhasesAreBuiltDuringIndexingPreparation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":804}}}],"partialFingerprints":{"codehealthFindingId/v1":"966e7cfea9940db103b89ff57200bff07f135e7ce48299362cff35f1707f4c3a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsConsumedOnlyByScriptPhasesSkippedForIndexingAreNotBuiltDuringIndexingPreparation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":891}}}],"partialFingerprints":{"codehealthFindingId/v1":"fed3802850a95712aa237df67177b97b3d9c1b69894e398f16c8f834d6a440c2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolDependenciesBuiltDuringIndexingPreparationExportVersionSymbols: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":978}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3351c81dd473333108ce54511c17e0b0782bfb5ce5260398d0c667a22d4f17b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsConsumedByCustomTasksPreparingForIndexingAreBuiltDuringIndexingPreparation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/HostBuildToolBuildOperationTests.swift"},"region":{"startLine":1181}}}],"partialFingerprints":{"codehealthFindingId/v1":"eed8d6afc9d64be73ad06c0802e6d4e62104d3860350ccdad22c08bfa665d26f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: legacyPrebuild2: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/IndexBuildOperationTests.swift"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b4571220b14bb3a1ad787abedf5786b3ebe81c1c5b9e02af463f5fc423b0bde"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: preparingWithBuildRuleOrPhaseScript: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/IndexBuildOperationTests.swift"},"region":{"startLine":994}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa9fe5731a51dbe41c69a408126c01c669c7b63efbf5253266fe6cf05e0fe34e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: preparingWithConflictingTargets: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/IndexBuildOperationTests.swift"},"region":{"startLine":1404}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f84979c89d366a57bc29bdd593f98ec6c51f1242d2074a74393eeb9cb14f1e6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: preparePCH: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/IndexBuildOperationTests.swift"},"region":{"startLine":1730}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ce2c498156f8b4b426aaa860e7a72a2073de4863d46484e72162bff89677cbd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prepareXCFramework: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/IndexBuildOperationTests.swift"},"region":{"startLine":1811}}}],"partialFingerprints":{"codehealthFindingId/v1":"41e5592f443d1234ed373f226b827cd5cf7d5830dfb287b32f97b95f1171109b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: infoPlistPreprocessingMerging: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InfoPlistBuildOperationTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"849fabeac34b42b1cc6369c1eec41514020c41fe28a6ec9b8c5f083a9d6e848b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: infoPlistIncrementalBehavior: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InfoPlistBuildOperationTests.swift"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"519683c1393ad021cf459710aba3d625f86297d88ea4bc0f4fc5da52db25d19c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dylibIncrementalInstallAPI: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InstallAPIBuildOperationTests.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"afdfca6610119b26e2b80c2741e3f445a3e59ab286b34ba9e0211749d7b013d9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkIncrementalInstallAPI: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InstallAPIBuildOperationTests.swift"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"912183d3e06f82203946a98a319e7a7961a5f093b5554ec238e79b23ed439e33"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installAPIHeaderPlatformFiltering: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InstallAPIBuildOperationTests.swift"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"5867cf9b0ef28c28fd2a789d6e3e8b40d10a1c902218fd564999f0d5fa6b2ac7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: stubifyAvoidsRelinkingWhenExportedSymbolsDoNotChange: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InstallAPIBuildOperationTests.swift"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"9866c3490323444c460ff44f86f2d198e6f9709cbf87c650b89617dbfed07312"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: instrumentsPackage: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/InstrumentsPackageBuildOperationTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5c3c1d05ff88fa3ea7b5d6e374b7416795cb445a6604c9cae78957828981de4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkerDriverDiagnosticsParsing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/LinkerTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d78e26eb0518ec610ebd51cd67a1d6ebd5a7f9543a103806dc9c14914f290a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prelinkingPropagatesPlatformVersion: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/LinkerTests.swift"},"region":{"startLine":369}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9fef4540fa713911429fe20778168ea518939a36724cd161a8b952042a90705"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: automaticMergedFrameworkCreation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/MergeableLibrariesBuildOperationTests.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"b75af48f534a283b05123dab302761c5e1c76bb6409e65d57d3ca71073895839"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: mergedFrameworkCreationWithMultipleProjects: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/MergeableLibrariesBuildOperationTests.swift"},"region":{"startLine":547}}}],"partialFingerprints":{"codehealthFindingId/v1":"0edec44899c0d0830b6c7353e0bfd54fad577bd01c24579dc5580c6a203f925d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: usingMergeableXCFramework: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/MergeableLibrariesBuildOperationTests.swift"},"region":{"startLine":976}}}],"partialFingerprints":{"codehealthFindingId/v1":"addfd47bf13054c07dc89339a04cb6a1f9b6eac3a63aa5d6e12da8419f0f866e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: usingMergeableXCFrameworkWithInterveningFramework: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/MergeableLibrariesBuildOperationTests.swift"},"region":{"startLine":1342}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b12b09d0255c10e0ac8d9f3fdb9a4816494ccc45b97d0c48fd87ad3212aa390"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: consumingObjectLibrary_ld: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ObjectLibraryBuildOperationTests.swift"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"be6ec8ea40ae3eb1c138865a0ccf936c11a230995b53c75b330bcf63fdf29a19"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: consumingObjectLibrary_libtool: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ObjectLibraryBuildOperationTests.swift"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ac74ac4443bae3e21d8be9954863ce90a8331dbe71bc3839500e6adc110d626"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: consumingObjectLibraryIncrementalBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ObjectLibraryBuildOperationTests.swift"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"557b2c87d49b9e5fb2d00f1ecbb2d82bb656f4989d2ce24661005754736f00b8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dynamicLibraryConsumingObjectLibraryWithCodeCoverage: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ObjectLibraryBuildOperationTests.swift"},"region":{"startLine":393}}}],"partialFingerprints":{"codehealthFindingId/v1":"825747f15960f131a732738ec201fb021644de923ab405b8a688bf2fc6c87e7d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: onDemandResourcesErrors: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/OnDemandResourcesTests.swift"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"f253c9c5c182357b9910cd721b3b3eb5557ddc04af1270f514b662a92ada5a5a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: userAssetPackManifest: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/OnDemandResourcesTests.swift"},"region":{"startLine":856}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb557b51a5b3f242d99fc4c81eef2c6618d94f94024881612cda0303e672f266"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDescriptionInvalidation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/OnDemandResourcesTests.swift"},"region":{"startLine":924}}}],"partialFingerprints":{"codehealthFindingId/v1":"94561e803a2ff5f665f9d4dcdf9bcc99448ff8e83d237bebf9129d319a9d2b85"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageResourcesSwift: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3463dc32ec60976e87db4899e48c218cb71b45f152fa4071ed1cf1470cc2edb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageResourcesObjCPP: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"4376156957ee4a2bc8b49e7ed642a5f17619e36df499c885d94cced4a18d838c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: RKAssetsWrongPlatform: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"012482e5c1f9b6de2d8f1bfb18375921c5107d55abb09fbaf55fd273c7ffc4ac"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageNameFlag: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":364}}}],"partialFingerprints":{"codehealthFindingId/v1":"408df4f809d8d264169d92d293d9847b357ca06c27a2d7c34b61c4119bc43d7c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overridingConfigurationNameForSwiftPackages: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee711f9f75ac949d2fa08c410223d8cb0e1b4ce1e2c240269c2e2d65319ad589"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: resourceEmbedInCodeIncrementalRebuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":708}}}],"partialFingerprints":{"codehealthFindingId/v1":"c06cc7e8ee0d40114cac3ac468d41ec82cff7ce3487a0c0cf01e7f3ec21321c4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompiledHeaderAsModule: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PrefixHeaderAsModuleTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"c757d904f0683e5dd6724655f214abb80039bd95ca4d708d4513cccacec9d3eb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompiledHeaderAsModuleImplicit: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PrefixHeaderAsModuleTests.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"02d1f0e18d726aca1db2ef761fcf94d89e09877f0fc8036a36e2098a8f2da108"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompiledHeaderAsModuleCxx: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PrefixHeaderAsModuleTests.swift"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b037a57c8da8a21e28e97ccb69097949260fd695bf1150828131f801f972c07"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: previewXOJITBuildsMultiArch: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/PreviewsBuildOperationTests.swift"},"region":{"startLine":639}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc861f2a9d230a531dd6323dfc795773b25c3e33934ee7516a51fd963a799686"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sceneKitTools: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SceneKitBuildOperationTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"b00aa3e84a0df3633f049ce687352534c1431c69f92a24699caade3d0be5065b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: blockTaskWritingToOwnedDirectory: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":730}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f51ee00f7b4dc5b3d9c2050a617414b3ef518267cf4a26ee882879cba3896a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: blockMultipleOwnersWithinSameTarget: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":841}}}],"partialFingerprints":{"codehealthFindingId/v1":"8617ceb1f4ca88c2ab84bfae6efbda23e41b33f448bf1900899647c7759d7fa3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: blockUndeclaredInputOrOutputFromDisk: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":1470}}}],"partialFingerprints":{"codehealthFindingId/v1":"c56b1390f0818f0e30b5f28ce602a8595261749d036b7b5a1d27b4b9daaeb554"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: blockUndeclaredInputFromAnotherPhase: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":1553}}}],"partialFingerprints":{"codehealthFindingId/v1":"36b300e6703b87749a4ced6e55ea74dee39ee42a4d2da3b4e15dbd91b24dd0bc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: blockDeclaredDependencyOnUndeclaredEmissionFromAnotherTarget: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":1625}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb97c35c30f72c029077aafc5af196c3fe3aef784986ed52775cdc0b85a0d94b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ensureProjectDirIsBlocked: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":1814}}}],"partialFingerprints":{"codehealthFindingId/v1":"213cc04763a1edfb17598e6fa83c46d762d38a9b607c982f5bfdfe7136725408"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: switchingBetweenSanitizerModes: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/StaleFileRemovalTests.swift"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5d4aa62b1aa9e5500a9a7694760c7b6c33e353a0d9431fd01c3b641be7d1ded"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticLibraryLinkingStaticLibrary: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/StaticLibraryBuildOperationTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"c377c12106bfdcb4bdf087d996d1fd7d7044806c1e5bd6cac7471e5b4bea0424"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: caseInsensitiveObjectLibraryCollision: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftBuildOperationTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"843fd21664ff4991370d423a2195391f2bf98092e886205ac7ced331f46bd3c0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsWithGeneratedObjectiveCHeaders: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftBuildOperationTests.swift"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"fde6ee96b5f81ee99addc2be03424ddb525ebac097b150b14429cdbfb512c23f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildLibraryForDistributionIgnoresExecutables: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftBuildOperationTests.swift"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"51fd91956e4464066d6efaf907824037bb8e278ba4823f5f89ed29a01f2873ed"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: avoidEmitModuleSourceInfo: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftBuildOperationTests.swift"},"region":{"startLine":619}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ca415ddc69e2859588a4c5b58c13a7983813429105f7f0d3069d6e08a202751"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftCASLimiting: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftCompilationCachingTests.swift"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"70db1f2ebef2e0df8328234fbeb5117906dea11abdedc4197c4ddbef4b4983fe"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: validateCAS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftCompilationCachingTests.swift"},"region":{"startLine":543}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4e6ab6ebfebfbe1570c21e0cf168251f0d002e9065ff03c949b3ffc10fb94dc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompiledHeader: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"63752b39a7aa9fb3cfd735b30203a6753512fc9ae5a385a5514087cbd9205041"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: verifyScannerDependenciesWithBridgingHeader: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"db27f70514109f34dd086d76274d5b9d8ac26fbaddfd12966dee7d7e15feff1e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: verifyModule: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":619}}}],"partialFingerprints":{"codehealthFindingId/v1":"282d482f3f952adec7c20114a932b32e861ba6143d8710bdba74e7b64f83db23"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compatibleArchs: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":686}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1e8f0d3b36b608c8dcb21835e14c544deb01a416aa48a7e40b7a17782557a0b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipInstall: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":781}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5fa14f719443ff4e7ebb39233adcfb504c4b80740e3ca810b89745b81efa446"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitModuleDeduplicationBasics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":1278}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cb89b5b74ae265077606616f6b99747e4295e93818fb3e8abf7c4870c873976"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: explicitBuildWithMultipleProjects: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":1396}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f64e5d1c3984b4c302fbae8d3a5d78343e0e3b6b20110a77e71390ffcde0328"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuild_invalidateDownstreamPlanning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":1859}}}],"partialFingerprints":{"codehealthFindingId/v1":"41755a4874afc6334688924bec7186e9a2eff177e25575bc489f972b270fce9e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scannerOnlyBridgingHeaderIncludeStaleBuild: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":1960}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3977b80c92fa2e8ba9ce29c965ddd8ef897928a49d253f2257a3b580a4efd8a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scannerOnlyGeneratedSwiftHeaderViaBridgingIncremental: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2080}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9deb6ae3ca37ee57f8946852f1b0e03557e9629c77bfc678b61e2c24b27a351"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuild_changeSameFile: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2136}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0d14ca5d650df735ede1039b674196ef6ab2c8dffa6ff4f710ad81ecfe8a3d4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuildRecordCorrectlyPersistsCompileFailures: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2228}}}],"partialFingerprints":{"codehealthFindingId/v1":"b700becc798803b91c80f9748ea1ff79ea60d61f08a09419e839f1973ec21f0d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: incrementalBuild_nullBuildPlanning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2499}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc702f94e77a743b2d1ea845ce809db6ff43875e63afce62e38be06f99599209"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: threadSafety: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2603}}}],"partialFingerprints":{"codehealthFindingId/v1":"37d685aa36f3ff58074d7a18c2236a930c6696305a7c0b8fb51da77052efb814"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: manySwiftFlags: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2672}}}],"partialFingerprints":{"codehealthFindingId/v1":"08ac21dd112e7233d03ecad71e7ea7c69d0ed3eabe6ed3eb5de3df5ce6266cbb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: diagnostics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2729}}}],"partialFingerprints":{"codehealthFindingId/v1":"e56aaf5c40dc3d7aad69581313517b7a7bcc5d5825fd8599813b5d50126f7be6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: diagnostics_WMO: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2826}}}],"partialFingerprints":{"codehealthFindingId/v1":"fae734339211737a20af5ab65e60d7aeb7a72630d36051e659dab2ba7038d162"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driverInitDiagnostics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2919}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae2cf3a33372804323a7af3c8b328f84c49f5d192043a0b82258b45be1b57ee3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftDriverJobExecutionEnvironment: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":2987}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d0a40a3491190a56fe32442f203427ccb0dc985672e36fa1a78b66df6d695f7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftEagerLinking: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":3191}}}],"partialFingerprints":{"codehealthFindingId/v1":"16a4ce614177e5e70abb816315d71b78fc2d00086f2e7d697bd8144b04bd79f9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftEagerLinkingFrameworkWithShallowBundle: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":3342}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebf85fe2e76134a4f2a57bb3ccc4a329b083fb0762cbe07bc944c63864f8584f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prepareForIndexing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4029}}}],"partialFingerprints":{"codehealthFindingId/v1":"21893be7bfbe0e4a2ad127d71c21d9caaae5dc5e8c1b71dbce2ecd09cebf4029"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: jobDiscoveryActivityLog: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4454}}}],"partialFingerprints":{"codehealthFindingId/v1":"62e227a3507a7815bdd054269ea544385e5a4dba55844b84f83fdb94ec4f8819"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: planningErrorsFailTask: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4500}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa4227cab350cb21ad16358ae6a08205654bc8c1faff88ab33fb3aee6e0508d0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: jobDiscoveryDoesNotFailAfterNonFatalError: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4581}}}],"partialFingerprints":{"codehealthFindingId/v1":"b629b2ceb6fc8f6d5f9534473f84138f93cd267f93830d74c47eac8ae5ddf284"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: userModuleHeaderChangeInvalidatesPlanning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4643}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d4e6ba5ec13c3adefbe26b3a8bc1283931392bbd4d8d2c22507b9149b51fe32"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: systemModuleOutsideSysrootHeaderChangeInvalidatesPlanning: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4736}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0616bb4db65bec5e3cdd1cb7f8c51cc6c2fdbfccd49e524c5b7329697e4ed07"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: diagnosingMissingTargetDependencies: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4828}}}],"partialFingerprints":{"codehealthFindingId/v1":"56d4ddaddec09ddf6fbdf0cfea09fbb9fde86091675bbba86ae0dffd2787d544"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: diagnosingMissingTargetDependenciesWithDependencyDomains: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":4939}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca9f95cea1615dbe2456967f72d15de77f3a7dfc79822ee139334fc8ce737c2e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: diagnosingLanguageFeatureEnablement: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":5126}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc4615b2cc111ad632c436e34c487064c12b25a68ea1fbe9db512b17416c7d69"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: singleThreadedWMOCompilation: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":5653}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5191ee2ed68a059f003dfa004f524f8ea7111cbd0bc80c83e022db655cf6bce"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicsSwift4_2: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":5723}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba25cfaef0ca3144c950a25fa6ae670971b8dd2a408302c2ceddcebc0e90a8e0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unifdefActionSignatureChange: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/UnifdefTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"b16b7bb53c1790b2035e3c9e2e17a6eda9df5d8a271c1fd32a7f2fcafb1f0b58"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appHostedTestTarget_macOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/UnitTestBuildOperationTests.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a87189936da75f95efffda5a88d9589f2b4519d1c6dddba709be778c13a2faf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appHostedTestTarget_iOS: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/UnitTestBuildOperationTests.swift"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"4969677d809d413390be2dacc5cc015b90bf6cac4b3ca111134aa6ede07b120f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: watchOnlyAppPlatformConstraints: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/WatchBuildOperationTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0d53753a00ded71fce1e54ca0205008ebc29a3047088678b888f3021d2659a2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appClipWorkspaceDiagnostic: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/WorkspaceDiagnosticsTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"a71fc6713df0961069d5c06636e0fd24d4247af847eab1612af5b6c43b0b2ef9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkProcessing: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"55e01aad4843486175f1b31e268c0da61fbe686f9992c276d7fe3d3c7fce6d6e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkProcessingSkipDynamicAutoEmbed: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf87caa48ccb77e213a85d0b1a9c195ecdc4e5f9a2851e78a917a020642a4d2d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkProcessingStatic: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"04e502681075357592c04e1df07d7947725648ff94dad37d9b2cbb23e448df0d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkProcessingStaticSkipAutoEmbed: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"42f3aed7fc9766f34b2ffeb305da28bfe65070a65c659d45c863d28842b8758c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkProcessingObject: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"27314e238211495e0c99681d18167f5f6b03f013dc9c21456240137da84314d4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkProcessingObjectSkipAutoEmbed: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"22eb4123aa688e74f130c7d740e0d606fdd21fb40378b1e0e05c7e0b0f6e58a1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ensureHeaderDiagnosticsForCollisions: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":432}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f4f82d1b99998a1a2d0ee34ec240ec59a6c80bef0f545be00b16b79bcca518e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: mismatchingSignatureProducesDiagnostics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":609}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab63f837e837a95e60c555e8c9e947fea4379b2af97f574a87e02f8dd38e9b9f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: mismatchingSignatureDoesNotProduceDiagnostics: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":673}}}],"partialFingerprints":{"codehealthFindingId/v1":"1407841c022d3be6574a17df197f77db894bd63452a6a35203f35de2fbfce444"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multiplatformFramework: No conventional assertion call was detected, and 272 of 518 tests in \u0060SWBBuildSystemTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBBuildSystemTests/XCFrameworkBuildOperationTests.swift"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5fa57d845a9516703a66567b381348a9998baccdd7d42f151ff2fbfb353ac97"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: largeDirectoryHierarchyExportPerf: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCASPerfTests/CASFSNodePerfTests.swift"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca8f855da87a52fc0d2bd9b77a916541e8a878a58a078fd89e7930c313bd9569"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: largeDirectoryHierarchyImportPerf: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCASPerfTests/CASFSNodePerfTests.swift"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"e129958ec0444a04999dddf8a65df5f7836083d87a51650bce71233f05f024ff"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: loadingPlugin: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCASTests/ToolchainCASPluginTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"62a5da68d52e88a41b1fe205feae43baa70dabcc367904551affd3440e5724c6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: init_X50_000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/BuildParameterPerfTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"0801f8977108cb56af99901372a951c413d4505ea751707669da64b75bfd5664"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hash_X10_000_000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/BuildParameterPerfTests.swift"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d7aca2768879bc7b016b7225ee0e663b8d0411dda1eae58f03c97ed4ab615af"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: minimalInit_X100_000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/BuildParameterPerfTests.swift"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"3af8eea39ff9200b328adf60341fd57639af0a6f2f90ae943da9304477bb3168"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: minimalHash_X10_000_000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/BuildParameterPerfTests.swift"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fabcce462372116d22481b8719963c44d205785d9b084f83078d71d57e1e4bd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: specRegistrationPerf: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/CorePerfTests.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"df282b9d76cae27aee9aaf340e4d4abf9d7a2928989286c2f224fb9c1eb1846f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: completeSpecLoadingPerf: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/CorePerfTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"e556ebd2dfa44fe1f17c24bf37ef89a169b18111f93f4acfa0322b04f960630d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfEmptyStrings_X100000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroConfigFileParsingPerfTests.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7b2d8a3e5a430600d39c34d45c68854cd909a6542bc234f9a763afe3f1fdc52"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfSingleSimpleAssignments_X100000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroConfigFileParsingPerfTests.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c50c77de19872ea7edb76f26740a09f3344baf04b773256061699e5fe300b63"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfMultipleSimpleAssignments_X1000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroConfigFileParsingPerfTests.swift"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"06fc6f8fb180c22d4ec97175929e46e4aaf2c3c87b6a2a57ce65295958dc7eee"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsing1MBFile_X10: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroConfigFileParsingPerfTests.swift"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"677a3522e940e247cde790e0e9cd0aa139c49f7a46522dd33963ca143e274372"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: simpleEvaluationOfLongStrings: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroEvaluationPerfTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f083c589b528bbb7ea217cb233edc67069ba3a32ce7f106df834a8d916fe48b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: simpleEvaluation: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroEvaluationPerfTests.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"e68973bc5113e42086abef9896ec39a38eab34e26235c6f73145ef443a2a2ef8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfEmptyStrings_X10000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroExpressionParsingPerfTests.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb9e96f5b884500c97d67761a883eacb9874d4ddb7d80657a55d435f6321b058"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfShortLiteralStrings_X10000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroExpressionParsingPerfTests.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"da880475f3ae4726b580ea59c33d9d2cfca02a00908b310bcc1c2bf16c9b6b3d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfLongLiteralStrings_X10000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroExpressionParsingPerfTests.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c984c74173af8d9a2b945f15b8defc0a20ee3caa0b9426ec109d7ca97d99fad"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingOfSimpleMacroExpressions_X10000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroExpressionParsingPerfTests.swift"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"e47d43a95c5452e67183f8c797411ed574015aef92502c8995a7a5c609e3840e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: parsingAllSpecMacrosPerf: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/MacroExpressionParsingPerfTests.swift"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"93488304893a55c76c658c9d0081be477dde67f2599e9b428ab963a45f3de6e8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: serializingTargetScopePerf_X100: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/SerializationPerfTests.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce002434c5f2561bfcabec54e87515e39addaeee2e9c80518a7faf1e0fd7897e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: serializingTargetScopePerf_X1000: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/SerializationPerfTests.swift"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"257fa87866c736afba2d20c1979a1614a2895c09fcb01923c24c9b478222f399"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetSettingsPerf_X100: No conventional assertion call was detected, and 20 of 29 tests in \u0060SWBCorePerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCorePerfTests/SettingsPerfTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"41da9007e8b2dc46c0b670d16083374c9c5be380d9ef1d37b677eb525b36a537"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: genericOutputParser: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"9396551770e27ad0dacc79afa6d40c836a56dc5ccfebe0e0dfbb36243f493b07"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: shellScriptOutputParser: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1bed3ebc79a89dbe5bf6d385d2c1c7f72fed39fe35b912b60c8197b3c99b496"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: ldLinkerOutputParser: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"c48b7e302d384d02d7f17f1b621eb3b0d4fa9e5b75620fe8aa8877954356f20d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: simulatedCommandLineToolSpecArchitectureFiltering: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":2470}}}],"partialFingerprints":{"codehealthFindingId/v1":"354dbfcaa41cddb3977c0c2debf5c8cbfa4a465ad010883978398faa11233a4c"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: externalToolchainsDir: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/CoreTests.swift"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"59d9d3127d8e93d3f9e4fde2198da1d4df6be828f600a10af4ed4a956fbc5fb1"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: selectConfiguredTarget: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/IndexSelectConfiguredTargetTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e982dcb057b2667f994901ef1f6ccf852d82b067e05eaf6928b821990e97701"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: badFramework: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierFrameworkTests.swift"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a8e2a5280306bc75fae897660738462dd427ac186c4b95652ce1ec547acb3c7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: newFramework: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierFrameworkTests.swift"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"33ec71769906693c2e246995cbe3b097b6c772b197cf79b0845fc23c4304878c"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: perfectFramework: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierFrameworkTests.swift"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ad31d087fe431418741b648238b9ffb9fad36d85cf8c0a71ae6901d37a532f5"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: privateOnlyPublicModuleFramework: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierFrameworkTests.swift"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"379e712b1783e3af1a04f2ec7d8e4a26c508cf6d45de86dc60c9cd0d6a775638"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: privateOnlyPublicPrivateModule: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierFrameworkTests.swift"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"786ed37408e7fe395102b8ff6d6498a263674ad5a90b802221f1b67257634362"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: header: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierHeaderTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5cec6e151e9fd42f6cd03abfd2dd7186362e6654e70d77c075a0c703a333921"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: badFrameworkModules: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierModuleMapTests.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8d3878b2d2995d975005d331a966792729948c5542838cf9751816d41ac3f22"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: newFrameworkModules: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierModuleMapTests.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"fefacc3ed70a924018ef8b9a89b1045c3574a553099040168c93914ff6c4bfad"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: perfectFrameworkModules: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ModuleVerifierModuleMapTests.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"f56fc45e4138329f33f2eb4490736c19c582abcf33bfe678e4181f3cb724f92f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_macOSApp_ExplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":392}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fa83541fcd429de7d8886209b2fadc8b9afe84c5c9b084492789e2621a35825"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_macOSApp_ImplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd42f231d6c5d813acaec329fdc19ad0c785bb2acde6563efa25492f5e32e6fa"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_iOSApp_ExplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":425}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c4bf5566fcc04d038d100502a34a98147994ace7eaebc21f84346df193e3e82"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_iOSApp_ImplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":430}}}],"partialFingerprints":{"codehealthFindingId/v1":"a47f4b2286f5a496fccba4b8683bfd6dbc42ce22caca84b56000d4a817e996d6"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_macCatalystApp_ExplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1430ba163744e1c2a2c7c15557e46f12238c42fb0ede658aa3af568bf8d77a9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_macCatalystApp_ImplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"e61322b647f600472221f01ecaec7358402d4049efde886c9b34875ea96ec0f7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_watchApp_ExplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":502}}}],"partialFingerprints":{"codehealthFindingId/v1":"7824959ac770f44bb53e25ccc6effbd07a8dae35d846352b53af5ef933c3dde3"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_watchApp_ImplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ba90aa491181cc83df45f8d03bb580b35f84a00649e9ad47ffea887982c80d7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_AllTopLevelTargets_ExplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":640}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c5d9c9ed59e307a6438230e1c1e4eae8753669b42b979ff1c5fadd314f55377"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_AllTopLevelTargets_ImplicitDeps_PublicSDK: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":645}}}],"partialFingerprints":{"codehealthFindingId/v1":"07bf573696b952a7aee4a3fedf3a378c2fc4afdfd885900e8841fd8419c9b2b4"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_AllTopLevelTargets_ExplicitDeps_PublicSDK_iOSDestination: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":650}}}],"partialFingerprints":{"codehealthFindingId/v1":"444d7e32f9e8ba084ce6bfd1bf716cf44148dd209b31fcfdc9966bc55491c4e7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_AllTopLevelTargets_ExplicitDeps_PublicSDK_macOSDestination: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":655}}}],"partialFingerprints":{"codehealthFindingId/v1":"145514d7a05df89e5197dbccf88f411cd235879dd519477e4c4b4acccff95ad1"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: coreScenario_AllTopLevelTargets_ExplicitDeps_PublicSDK_macCatalystDestination: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":660}}}],"partialFingerprints":{"codehealthFindingId/v1":"1321648292da061ee5c08ab46cbce09293541fc743ca86ec9002f18d9ae0e53d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: narrowSpecialization_ExplicitDependencies: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":772}}}],"partialFingerprints":{"codehealthFindingId/v1":"019e38229812eb5e3423babc31d456382c59956bc3b9d19c8af1a6fa1513cc67"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: narrowSpecialization_ImplicitDependencies: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/MultiPlatformDependencyResolverTests.swift"},"region":{"startLine":777}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2207e92e4ba5b65226ab6fd46daa8d6555bd1614d5694be1e4bded2746dea54"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: testEnablingSecurityArchs_macOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":1910}}}],"partialFingerprints":{"codehealthFindingId/v1":"15448d2aae4da94904f7a3efd59ca93f40b1110683ed58334dbe383e2af980f0"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: testEnablingSecurityArchs_iOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":1915}}}],"partialFingerprints":{"codehealthFindingId/v1":"c37c0ecccc3ad32a79ba2acd81b9e454557f748f2734bfb6c039938158291cf7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: testEnablingSecurityArchs_tvOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":1920}}}],"partialFingerprints":{"codehealthFindingId/v1":"1841e9c8ef7f7c45a5b2cd260d1e0ec4dc9a8bfa37490c36cfd4e6a0ffa80708"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: testEnablingSecurityArchs_watchOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":1925}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8fbc42d2ad8984a6edc1f5bef6640686b0d9f8f335e3c3346684bc9668cbd3"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: recursiveSearchPaths: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":6335}}}],"partialFingerprints":{"codehealthFindingId/v1":"76b3423c54482a39aa8ab5054665800f1164cf6179853cccf5ac8d40c002444a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: includeWithoutFileExtensionIfOneIsNeeded: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":6346}}}],"partialFingerprints":{"codehealthFindingId/v1":"64b9a68781df0df8e22eb5c49eba5513ad29daee3ccb26716b80d098b537fd31"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: includeWithoutFileExtension: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":6356}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ac46bc418b8e594b617f1b89eeec258a954b4765e9d3e5868b1e7d876d0d4a2"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: includeWithAbsolutePathAndMissingFileExtension: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":6366}}}],"partialFingerprints":{"codehealthFindingId/v1":"82e0a2b4079816d408e99afc9f7a73a567174f5cdfc919378a2ec07415b5a1a9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: productTypeSpecLoadingClassAssociations_macOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"9174f599a44da41879ad89f058421cb1bc6ac26a59b47afb33de68f2217a0f8b"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: productTypeSpecLoadingClassAssociations_iOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"900fc1692fa6e28090a5ddff3656aee791e3456f86c33da18dc557b1fb5ba6b6"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: productTypeSpecLoadingClassAssociations_tvOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"23f96c3c62a1457ce2b833e1a9e9caa86fe6eb564d0db089bcd36583bc1491ab"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: productTypeSpecLoadingClassAssociations_watchOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"a977ad2d24b7f00d5ec6e2c0fd61bde54afaaccc0c97bac5151bf990cc0221ce"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: productTypeSpecLoadingClassAssociations_visionOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ac8b8fe0809cfaae2aead873a0c4abf9fcdcccf7c97d7d2c268a6456edcb6bd"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: specDomainInversion: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":1029}}}],"partialFingerprints":{"codehealthFindingId/v1":"746fcd13b6974e21cf6a430888288f6d5ca957a67884de30a298ffcaace49690"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: specializationWithPlatformFilteringV1: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":639}}}],"partialFingerprints":{"codehealthFindingId/v1":"9dcc0732063e810714739a647703ce7dcd88cf011e026a51d16ddd77ffdcd912"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: specializationWithPlatformFilteringV2: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":644}}}],"partialFingerprints":{"codehealthFindingId/v1":"2613d210798e373555939f6cee93b4495d8b6828b35b9fcd4c8f60f668149e7f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: specializationWithCommandLineOverridesV1: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"85f9498203bce4704965e23cb7c7cd14aafec8b7f771159c43cdb932fd03ff37"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: specializationWithCommandLineOverridesV2: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":685}}}],"partialFingerprints":{"codehealthFindingId/v1":"05b5e6c91fecaf31300da0e9c8b6b10250c12a332e981f28067c55d93a854395"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: instantiateMultiplePackageProductsStatic: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":971}}}],"partialFingerprints":{"codehealthFindingId/v1":"587929ed6e8bcfb890595cdaaae22251a338868edc901abb50433fd366ffca58"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: instantiateMultiplePackageProductsDynamic: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":976}}}],"partialFingerprints":{"codehealthFindingId/v1":"2832ca678339f14cea806d1cc6baf7b8dc134b5ff278871f3aae0e5582a4be61"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: toolchainOverridesDoNotConflictWithSpecialization: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":981}}}],"partialFingerprints":{"codehealthFindingId/v1":"321edff02a7bee3b2df767078aa3fbf5c0643a70dc3901f69e5b036eacb51710"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: toolchainOverlaysViaOverridesDoNotConflictWithSpecialization: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":1033}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b799495565462c41897391890b18fcabb125b02daba06a023585cb50caea9f6"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: aggregatesMayOnlyLeadToASingleSetOfSpecializations: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":1234}}}],"partialFingerprints":{"codehealthFindingId/v1":"248bdd23bd7b0c1899dc1a13aa5810ad2e4bbbbb50da576dddd1132f26c1ef1f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: aggregateErrorIsNotEmittedIfThereAreNoPackageDependencies: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":1259}}}],"partialFingerprints":{"codehealthFindingId/v1":"eede82b877c6184af6ce44007b18da09ea11f9f55baced7bb3c7d1234867bfb0"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: loadingErrors: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ToolchainRegistryTests.swift"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f6a5448f266a333aed9108698e5a9f6cf152d8005b878713be5802b7f98d28e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: loadingWarnings: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/ToolchainRegistryTests.swift"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"4db7a4fdb1af2a3994c1150668516eaea70ab943fbf39ab6a0a305a489d22c74"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkParsingErrors: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ed7da0232a8f45e29163ad0a4546141e30d6e8ad0a789330d40e8d794194624"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macFramework_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":986}}}],"partialFingerprints":{"codehealthFindingId/v1":"35bb19136314b775a28c2d9ca4c1f31d7a4af8c3360ed46c1c40bb35809f8b7a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macFramework_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":991}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dcddbd555f4d08470ede45da36c4ff08b60371f70a114f43b7110474f6ce3c0"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macFrameworkWithDSYMs_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":996}}}],"partialFingerprints":{"codehealthFindingId/v1":"70550a072902a77ee5711ca6f335abb1295783ff570f6878d21575339ce2be32"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macFrameworkWithDSYMs_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"004242513b5f85cf2aca4ddd69609e7285098b0df4ab2e13cbba2c51850ac912"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macDynamicLibrary_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1036}}}],"partialFingerprints":{"codehealthFindingId/v1":"c67a2df157d396413bf208d001cbb5029c2ae0808b2b018c18089bf1c923aff9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macDynamicLibrary_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1041}}}],"partialFingerprints":{"codehealthFindingId/v1":"a053c737f36c40023f4282cc0241c15fbb34d7678a9a34579033f357eaabd26d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSFramework_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1174}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c76cb3d9328a8b69eb05a3541a8f5a1165d05604ff81c45970417abc414f6bb"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSFramework_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1179}}}],"partialFingerprints":{"codehealthFindingId/v1":"366e6f7c88434918ad7f137f82046460921e918330da30711aa6ad091f90ffea"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSFrameworkWithDebugSymbols_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1184}}}],"partialFingerprints":{"codehealthFindingId/v1":"470986a7818593388c9790b675fd1d0bd2af4f5b49688a125e6398e562c22e05"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSFrameworkWithDebugSymbols_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1189}}}],"partialFingerprints":{"codehealthFindingId/v1":"873d73c2375b7ea68922f278060f79325f179b89b0829fd39d00b08b41b048c9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSDynamicLibrary_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1232}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e8788ad138231243c9c4f2e713bbf9829b44a10aa08e9ba03bc6c64d3a1224d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSDynamicLibrary_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1237}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e3d86b781f7e8e306c4085cb5609db4c3070bce0fa0caf2b2ea37eb2f86120f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSSimulatorFramework_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1264}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac6850a734bdab12feaa69eea035434ac8d0f16fd644d752585aeeb6963d9c42"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSSimulatorFramework_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1269}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b69e496018a2f7a66bce3f1fb074235046d58c73bce31a1541195c4f7f47386"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSSimulatorDynamicLibrary_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1296}}}],"partialFingerprints":{"codehealthFindingId/v1":"13f6c719cb50c5eac68504888fb5434057dbfe19b080f304bf57788d1d85b01e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: iOSSimulatorDynamicLibrary_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1301}}}],"partialFingerprints":{"codehealthFindingId/v1":"4096c93184a84514c31d41f04de0dc97085794e4442b3a3da274bae3a711a4e2"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macCatalystDynamicLibrary_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1328}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e2d3ad0e26958d19303309377479db7a36ef51d4a9369a4ce1dcc17cf79ecab"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macCatalystDynamicLibrary_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1333}}}],"partialFingerprints":{"codehealthFindingId/v1":"13b4fe14722a318c1f932f9eb5452dd451e87d7b0a06563e2ac85a0093ad04df"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkCommandForFrameworks_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1360}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a44ff01c0ac47ff745e2c1e0ed7f3b80786de5bb15af407eadea9e8a2776dc1"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkCommandForFrameworks_swiftWithInternals: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1365}}}],"partialFingerprints":{"codehealthFindingId/v1":"0516b6ddd3b51e014e0e1fb22ea05fa385460a1560f57b7cfa5218f1f1cdb77f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkCommandForFrameworks_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1370}}}],"partialFingerprints":{"codehealthFindingId/v1":"65ae07388a1b7c39f47cff3dfc98c80d1e3b77aaa68b25228e5a98b1056bc8e1"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkCommandForDynamicLibraries_swift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1500}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf1ce63d4be82842fa6d410bfd9c134e39f5f5618fca2c08c973bf43f95ab1ff"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkCommandForDynamicLibraries_swift_internalDistribution: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1505}}}],"partialFingerprints":{"codehealthFindingId/v1":"8356e52666f2010fcf677e650f00b740a20b4a6e700540a79eece1251b33006b"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: XCFrameworkCommandForDynamicLibraries_nonswift: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":1510}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c25b28a34c764d1b990b95bb6aef703d364f0fde88f195c07f3946f6af9425f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: staticLinuxSwiftSDKRunDestination: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBGenericUnixPlatformTests/SwiftSDKTaskConstructionTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c2b447787003eb607271db8d681ebbe92f96e7e535377ec930924ebb65e299a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: inMemoryStaticLinuxSwiftSDKRunDestination: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBGenericUnixPlatformTests/SwiftSDKTaskConstructionTests.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4cf11f6ecbbaaef88d6442224409263eebb15095fd7e9848d6d8b0806b9beda"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringExpressionParsing_SimpleLiterals: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"96528deab5bc15d069c4c998fe7e0625fc19bb890d1f48c30917fd2cf9d48524"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringExpressionParsing_SimpleSubstitutions: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"359b2394ef139a9a4cc1a83540646947cc340c88ffa5be10cb227e6397edf195"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringExpressionParsing_InterestingCases: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"206cdf4b37fdca67b14e2d6645bda830fa96b40894edd410153be65dc8e5a740"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringExpressionParsing_Operators: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"e36d27d02e674dcdc76aa7f42b9811f7730f07f0d5f663fd781262da4f2857de"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringListExpressionParsing_Empty: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"d85cdff11ae2512bbddf2a586f108033c5d404e9214b1e5a02fda4452f1ab9c7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringListExpressionParsing_WhitespaceOnly: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"dea08da3059dd50766c8bcc95c0fb2b955b1478160e6ce3b00ebb0755c38545d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringListExpressionParsing_SimpleTests: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cebe61bbbba71bde542b76d451e55bc77636c80cee160cdb54519cc6e652b36"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroStringListExpressionParsing_Quoting: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"14a1bcae59c252a5ecd0b3fecf01d22958e7f5978456ea27a42a0586f9950b1f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: macroSimpleConfigFileParsing: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":535}}}],"partialFingerprints":{"codehealthFindingId/v1":"35977613995f1555bbf735e3f30e1ecbd56d48a87f7f26f89f940ca8913bc8ae"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: ensureOldSingleLineBehavior: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":657}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d529eb82b4f07e6d0847015c454754eeeb0a390a273058c91737f0bcdb138fa"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: multiline: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":666}}}],"partialFingerprints":{"codehealthFindingId/v1":"efc071a7c1f6a783ece005d5d2d8f0689e6e923e3030cce3d3d78de399436d69"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: lineCntInsideDollarParen: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":686}}}],"partialFingerprints":{"codehealthFindingId/v1":"718a264d96978eb8122e31f0836393531e1904ebbb7974142735eff45b413db0"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: nonterminalBackslash: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":699}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea3ec69f58ff6adc53a57cb7b28867af88c899978bb5ef0b3eeb69335a2c9a53"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: backslashInConditions: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":709}}}],"partialFingerprints":{"codehealthFindingId/v1":"a099a9eb23d6679d375338126f2299e8b3012231055d04e2bf491919d4496d6e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicMultilineExample: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":722}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b683d21f6bfc194c116828c88e161855d6ee18371517847b18283f44e813c77"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: terminatingBackslashInsideStringLiteral: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":746}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fadb62673cadb3297e696200b951325ee96859195a2591ef42aa4e14fee65e7"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: terminatingBackslashInsideEmptyLine: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":759}}}],"partialFingerprints":{"codehealthFindingId/v1":"19dbc8b0cc53adf2ea2587fda51e7a44882c587ee4b6f302bb59cede7538ba59"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: backslashInBothConditionAndRHS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":773}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bfc386d1631400590d449bf0fedcf826ac69f4d7cb4ace724fff2900f807779"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: parserProvidesLocationInformation: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":808}}}],"partialFingerprints":{"codehealthFindingId/v1":"a062cdf57eac45e663c87ea16818d1b2be5967a7aa5ad84e89a529d412991ee4"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: finalLineAndColumnTracking: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":828}}}],"partialFingerprints":{"codehealthFindingId/v1":"ece299252fab838315bb490261c2bf16bce25f908ee5f121fcf8e0afa4370aba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clientExchangeMessagesRoundTrip: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/MessageSerializationTests.swift"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"85d78e541efa9ff586c3cde2730a5249869b86a57a788e6675396de281164aac"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexingMessagesRoundTrip: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/MessageSerializationTests.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5aa9b5402941968a892c06c5c84a90f7d5c6292ae4af4fd3ab9759b80d7368a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: previewInfoMessagesRoundTrip: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/MessageSerializationTests.swift"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"9981a6ec8bb1ffa61fac74435846ee5a06438d7715ebc627c4579c5a788744b9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: planningOperationMessages: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/MessageSerializationTests.swift"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd46b94d16ed8222fb87c06af63160c8821d8028c7a899c95db857371c34139c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macroEvaluationMessages: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/MessageSerializationTests.swift"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7e92b71502253133d34aa830886c0a3fe470752803be5578953b1f65be634e6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildableItemGUID: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/ProjectModelTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9c0cc311cd2a8d07309126094037a90daab0442da1930b3efccdbec354766c9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: inputSpecifier: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/ProjectModelTests.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"801569e28b7b23aa11ee47e03fd2984d576e79ac67c479352d7c86e36019fef4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: actionSpecifier: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/ProjectModelTests.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"61f0735e1dd63c91588a612e7b945680fb3124a8322bab20ef99cd1c64701312"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macroExpressionSource: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/ProjectModelTests.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae4bc2be926d6a60d06bc08181efcbe719938139418ebfe6ecce68db76edfaae"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: PIFObject: No conventional assertion call was detected, and 10 of 18 tests in \u0060SWBProtocolTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBProtocolTests/ProjectModelTests.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ab45f0139e5cd2c754840c4b59d5b48c6d96895bd29dd2f6096f7355526e236"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): basics: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBServiceCoreTests/ServiceCoreTests.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2a173e5e9cec96746f4cce6820d3f9a4f45b5d42e042cb25cbdc5749f7095b6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: aimodelCompilerSandboxingCanBeDisabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AIModelTaskConstructionTests.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"619135f4e0c0e073d6fa0bac73dd2ee3ad9a561494576e6995871dd0cd91f7d5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appClip: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppClipTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cc344fc02357cf11fca51594a4a839ee3209e293e0075a5cb063dabd7cbe521"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appExtensionEmbedding: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppExtensionTaskConstructionTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"02b3fc391e657aef726e824ccc23da2b69f21fb8beb81d98b8204c5c78544a21"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appExtensionSwiftEmbedding: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppExtensionTaskConstructionTests.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"a496f09656d13db737122f815a5a409ca7ee7de390b9f3c6efa8fd3a3def55fd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appIntentsMetadataWithYamlGenerationForRelease: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":399}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2fccc7a31520236a62faf5b7a28d5f5f402ec67d5bb6ae1a365bef2b2886c8d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appIntentsMetadataWithAppNameOverrideAndDisable: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"401cfced6e3c2b07613e7605415658239ccac3319cde6b162331ba154ced8869"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipInstall: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbb4083bf1df44df2e7e06e1bdc75f6db4a64d02e1261d96fe92c37611c95e03"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sSUTasksIfPublicSDK: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":786}}}],"partialFingerprints":{"codehealthFindingId/v1":"76c376e23171b38f887236770462c4a898b4ef93238b39c45aaf7b37de5d3a9a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overrideSSUTasksIfPublicSDK: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":845}}}],"partialFingerprints":{"codehealthFindingId/v1":"234856b2050d15a860ff80a4109d604cc291a7dba98f5fc14d8a2f7c1b77ffe4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: SSUTasksIfPublicSDKForNonIOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":902}}}],"partialFingerprints":{"codehealthFindingId/v1":"76da6da591498b4072c68223c41abfb1f53642dd82ed84ccdb8766f6ad479485"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: forceLinkGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":957}}}],"partialFingerprints":{"codehealthFindingId/v1":"08ad924d295fe7ae915a6a827fad9cbdc073532b487512e6bb0a49ac5140f29c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipInstallViaConfig: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1020}}}],"partialFingerprints":{"codehealthFindingId/v1":"23ca8b2238499fde385696d51b17c6c82c1126ea86d04d2fcf491739394d511d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipCompileTimeExtractionViaConfig: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1075}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbffb264c4baec876a2d6f4d63e17f8b337f649f4ea45d6800ea416da004e342"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: disableAppIntentsDeploymentAwareProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1136}}}],"partialFingerprints":{"codehealthFindingId/v1":"60edfebdc232f8c4a42a04136f28efa0f91a278ddd5ac691567a99ba9680b14d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appNameOverrideIsNotPresent: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1471}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cc00b0ddea4e83dda779b3327244cec034bceee2e8977d72df7c04ea79d9618"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appNameOverride: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1535}}}],"partialFingerprints":{"codehealthFindingId/v1":"15aa3a1f3efc946cf5cbccf2fe7f590bdcd379178b1c434e09e012add1de50d9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: quietWarnings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1598}}}],"partialFingerprints":{"codehealthFindingId/v1":"793c94739e145136b7d426adb21bc5a783e61c42b6c2ba98e876d51f0769a39b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: bundleIdentifier: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1661}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe07157f9d89ed6906565c82aa19d4b2db95179369d3e480ce5258275e56e6af"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: emptyBundleIdentifier: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AppIntentsMetadataTaskConstructionTests.swift"},"region":{"startLine":1723}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b0c242f09efb3237688c77946767362ff9b68c2db352020428c58fc14a028a8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSX86BackDeployment: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArchitectureTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fe248765ba6aed5fed92c2a0297d6f3490e71b754ebe009470cfd46c3930f30"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driverKitX86BackDeployment: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArchitectureTaskConstructionTests.swift"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"702d4167c8a4935d2615f3efde9783a6350a519726bab6c83c61d3514810b211"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildSettingsTripleCondition: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArtifactBundleTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e0df15023bc190f6e6168196cbe62fc832f7cb839a56fd2f3365a382fed8f5a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: artifactBundleWithStaticLibrary: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArtifactBundleTaskConstructionTests.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"0aba040e61d43dae8c320f8b97d2dc6b6f2cd824de5b200c79bfe6df7783bbe5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: artifactBundleWithWindowsDLLs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArtifactBundleTaskConstructionTests.swift"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e75e90d292d34723f4b5c31178d152b1fc1cf900f9cb56b29b42483ab09696e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: artifactBundleWithWindowsDLLsNoMatchWarning: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArtifactBundleTaskConstructionTests.swift"},"region":{"startLine":280}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f3307ceb737f2eeaae7122e8ba85df88e519e0882103a14f72034bea6dc5065"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: artifactBundleInfoPropagatesThroughPackageProductTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ArtifactBundleTaskConstructionTests.swift"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"1987e012dfc25b09e82fd146bdc141ac517d96ec76add5721fc1cb84d1fb086e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: filterForThinningDeviceConfiguration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"87267f553cc093a7a305398301951406c4dff65254ae5cc3b097c0991783a022"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: filterForThinningDeviceConfigurationAndDeviceModel: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"875a9a85e3f97ee86ebfb671040e7693be57029ccb8e2be65832007092b74bc4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: filterForDeviceModel: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"53954e2304961b174034768802776bdd87a74aba54ba96f4819742d7e321b775"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noFilters: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":258}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a07b6dca64d25c367cfd54682cb12bb90214c136ebd46217be7072efd0d24f7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: generateAssetSymbols: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"162905e583f57c921d21191be2d0eb128b9f4a88055b0f86bf8e03a99377606b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: generateAssetSymbolsOptions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":367}}}],"partialFingerprints":{"codehealthFindingId/v1":"e51ee3ef851cf10f783f7335bc6a145560e5a2b2c92e02e04ff5135a9d761eb6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogKnownLocalizationsFiltering: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":442}}}],"partialFingerprints":{"codehealthFindingId/v1":"f63ea42246cb6d445e959aee9f16ffce106c045b8fcb048c1afcf4bd2f9f0ebe"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleAssetCatalogKnownLocalizationsFiltering: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8f4998472961ffd2d0724a258bac4e7096ea13e07ee6934e186e7d5e7b55453"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogEmptyKnownLocalizations: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"17d85c429ad2f8652bc3bfaca3a4f0ce14b8e6bbdee814166d572332c13f78ba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: uiFrameworkFamilyForMacCatalyst: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":582}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a16f82f3885e9d40d32fc614ccdb6e499d4be0f770bd396c3e9567fb2c09a11"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: disabledAssetSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/AssetCatalogTaskConstructionTests.swift"},"region":{"startLine":637}}}],"partialFingerprints":{"codehealthFindingId/v1":"c91970607ee8ab1216285e25f700db5ed5a8dcdd31f6d2c0520764119b6c1c0a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: bareMetalLinkerSpecSelection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BareMetalTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"92ebe6e712c9ad21f3ae0585334041e161cc60fd0eb0db7253133aa74714b2d9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildConfigurationFiltering_Debug: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildConfigurationFilteringTaskConstructionTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9b2a68ff782dfa36544958806962564389a4ade5c0c34682fba7a6c077a18b7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildConfigurationFiltering_Release: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildConfigurationFilteringTaskConstructionTests.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"632989c42e718e9592770b2e894c6ab5ace6bcba445623a02d331cbe1d5e7f71"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: filteredPackageFrameworkExcludedFromAutoEmbed: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildConfigurationFilteringTaskConstructionTests.swift"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"e88867440fac465516694dee694f5ac4e1c72af0f88283a32690cd39d2acde3d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: bothFiltersMatch: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildFileFilteringInteractionTests.swift"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"df4b5544435cdbd183703e0da20d90e79bc4b882119859f7d09d9d3fca881541"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: onlyPlatformFilterMismatches: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildFileFilteringInteractionTests.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"a310d05e646385ae37425f418237e679daa8430854274ff54460ec1ddb79e3e0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: onlyBuildConfigurationFilterMismatches: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildFileFilteringInteractionTests.swift"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"e539f243779244a933db244d01dd1e79c4d991f725699853afe0e8083b271efb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: bothFiltersMismatch_platformPrecedence: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildFileFilteringInteractionTests.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"77d62b9766a6d9e1190b522c7ced48be88aa2b6ee558f1459d8bae022669fe8a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ignoringBuildPhases: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"8add5d141209d7540d39bc4be0ccb27eb44946042c4364a2802290d0fed3a1c2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicCopyResourcesCompileSourcesFusion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ec256fae5c26d0a5564d7b1dc6205838d9e1eaf1f7172e4808beae3233a405a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptPhaseBlocksCopyResourcesCompileSourcesFusion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"55f1e6f4208fcdfb0ea8b349d60ee223182e3ed89af5b64bbb7b69a210532559"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptFusion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"454fcbacc62ba7ed5fcd82f66b40dc5e290bb7324db8eedfde1a38b2d730e78d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFilesFusion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cf22b30509f420bb6d792026379cb2b8453ea901f75c6e5c0d6eaf222f13834"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildPhaseFusionDisabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":365}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a69969b40bfa4ff633b632973ab654a5271d80ecfb587503f4fecc3616c3795"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptPhaseRelocationBasic: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":410}}}],"partialFingerprints":{"codehealthFindingId/v1":"55d8716adb07089a1e95f3148a10a00421e895df5a4732f0c629b0ae824754df"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptPhaseRelocationBasicWithSandboxedScriptsProducingHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e5d3b470a3c23063fb3cb9cdfaaeda325e24e226da9267d0f4dfebde560eacb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptPhaseRelocationBasicWithSandboxedScriptsNotProducingHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0490a0bab94e81a68da2ebaaa7cc5b989dc9404feb5a377b13a47227ab4d161"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptPhaseRelocationBasicWithUnsandboxedScripts: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildPhaseFusionTests.swift"},"region":{"startLine":549}}}],"partialFingerprints":{"codehealthFindingId/v1":"169affcaa13f78bf6f8f411e890205ca8ca62667901b5056ce6b7be36c0fe02b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customBuildRules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"07ceb1036483aaa4f998553c42eb8fd5a8f9ab0246130171c3df70b2f6032793"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customBuildRulesSpecialBehaviors: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"35f1600d517cac09fca4611503bffb247d31966f6da31e05d73a2b8fa3de01ac"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptRuleWithNoOutputs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":451}}}],"partialFingerprints":{"codehealthFindingId/v1":"392f0575a1b8fd30a7535671a88961a9c2c42c5d2f0529e99e5e6dae7aae259d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildRuleWithDuplicateFileReferences: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":484}}}],"partialFingerprints":{"codehealthFindingId/v1":"99f4e739306f77c5a2eda53d0f38a84a3bce2dd2dbf368f8de143ac27b2612d6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleFileProcessedError: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":538}}}],"partialFingerprints":{"codehealthFindingId/v1":"efaba4e8cec1f7fbdbfd235765f5a53136509115db9023249a28fa9f431919c2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overrideVersionCBuildRule: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":583}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed41aa85a0f52e07c1bd6168c981bd9f9707fd9c7af038e58cb84ed9ad40c07e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildRulesWithUnsupportedPhases: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildRuleTaskConstructionTests.swift"},"region":{"startLine":647}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb62e05b47d4859778b93fd289c347be09e4ec2196ef27999ebfc00bbde7ac81"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: missingRuleDiagnostic: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"06e6a25c940448655ce29040e569f0f16fea96a530f7b4cec848464519f2b5b0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerWithSameBasenameSources: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1463}}}],"partialFingerprints":{"codehealthFindingId/v1":"4414634b6b0adb468861a17f7b9b7c2a74f2b17f53b6f4254913771dfc831e33"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerLanguageRevision: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1511}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c4a4cd838740ed7dc8f7311cd258df0174e5113d5070dae313a25d74605cc58"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerEnableModules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1617}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1bbe662cdb73247f02809a8982b1b163ea042d57189e1f90ca8ea71a1cd0349"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerOptimizationLevelDefault: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1669}}}],"partialFingerprints":{"codehealthFindingId/v1":"521c816be837e12ab1ba4cbab101ba2be692ce4126eab4d4a8c54214e33f15c0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerOptimizationLevelSize: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1704}}}],"partialFingerprints":{"codehealthFindingId/v1":"0905f176f11f451999f27b2509bc076aa64b1d61a6a34f0a569b5e752b6f0ef5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerMathModes: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1774}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb6caa9df48f5029eda8170abcf3cb4d55b74fbe0a5099b335147a0bffa623c0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerFP32MathFunctions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1789}}}],"partialFingerprints":{"codehealthFindingId/v1":"407a4c92106a3c652698424516f2258c5e43d6f906973a1f4fc0494b6168920b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: metalCompilerFastMath: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":1806}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca7e0c72e090026de0bdb1a65ac8b8edf6280382baa827f16939ac1d3e148f3b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkerSelection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":2065}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d9e29f6536e50864cecefe849e386b66d322693cdd2e035200212ac362c5dbf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkMissingProjectReference: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":2555}}}],"partialFingerprints":{"codehealthFindingId/v1":"304f82898912f24e734d11b7418fca10d0c77c6027415241e3882101a6d21b8b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: embeddedInfoPlistLinkerDependency: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":2603}}}],"partialFingerprints":{"codehealthFindingId/v1":"0748f7542803be31d49e18816d7bf8647c149f536670d2625bcf1c95e7811b28"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compilerLanguageDialectSelection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":2656}}}],"partialFingerprints":{"codehealthFindingId/v1":"062a8cc3a22a84794ee5a323d1b5c18a36d4dc0f86218976289cb278dd1670a8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: versionCGeneratedFileIsExcluded: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":2742}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3eef78d199f746db289721facd8df888b5e198e880f559262410f09d9284c2d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildRuleAppliedToAnothersOutputWithSameConfigurationBuildDirOverride: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/BuildToolTaskConstructionTests.swift"},"region":{"startLine":2843}}}],"partialFingerprints":{"codehealthFindingId/v1":"afc132c95e38418e82007a4819f1995c1f09e71dbd201bc13d5b93019f73fa25"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: onlySupportedLanguagesEnableModules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangModulesTaskConstructionTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e103be82a851abdb402e1112e1ef09967cd5dd43755f19813063d298504608c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: disabledByCompilerWrapper: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangResponseFileTaskConstructionTests.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa8cd65c21960706c365f8f32fc5aaa4e6c48305c2ac36aba082d1b45b5e136a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: statCacheTaskConstruction: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangStatCacheTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"781ded1de6262db13d5aa3bc4da72df070287193194fd545dedb32d8716b7ad4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: verboseLogging: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangStatCacheTaskConstructionTests.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"075ce5878662b3c24a30a21891a50cdd10a7cb94e534522264d862d7ecdb76eb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: statCacheEligibility: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangStatCacheTaskConstructionTests.swift"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"8098e0f233b68b2e9a2b507a529464c8541084d668cd6adc82a58c08a347f186"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildAndAnalyzeCustomAnalyzer: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangStaticAnalyzerTests.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a2b9ed7c76e66e6cc6549792a9ba5fb048e178fe0857982be860ed91ede050b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skippingStaticAnalyzer: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangStaticAnalyzerTests.swift"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fb1996c18c4858d0fc5097614e5054da9a4d2e635cc5c899bc7fcc09afa45a1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cPlusPlusLibrary: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangTests.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c7b3382729582795d35feabebef8ddb2c252406eb422557eee8720be73d9e53"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangCacheEnableLauncher: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangTests.swift"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d688334633c9f805db05dd1cd4fc6f43ecc0b840b992c3203f8cbfbb8261c37"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangTests.swift"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"86bc3f659075b50491fa7e423ec72b83787a4972d975037f0c4fda3fcb703579"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptionsNotAddedIfIndexingIsDisabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangTests.swift"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ce6097a0ddc4724f03b6b8e69409d1553930fda7331c7723ccfc128103a33f0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptionsRequireClangSupport: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ClangTests.swift"},"region":{"startLine":451}}}],"partialFingerprints":{"codehealthFindingId/v1":"751788b1f01579bdc00d2129f2e084b011b89d02a90b9c671894e6a6b2e40081"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codeCoverageFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeCoverageTaskConstructionTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffb57e29b7578f27509a47946bbf787047f75de6362befdb41e262577bf8a76e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codesignWithKeychainPathOverride: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f4525e80843548fa3095013205b29092ce4775853cbc0745b3377c9444c671c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: additionalCodeSignInputs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"705f4c33c79c21b2be34b02aa4c68b2214f0ae20771ace80af541d9b962c8beb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: stripDisallowedXattrsGatedOnHostOSVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":543}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3feba0469803123b15e26d7aaaca488d7e092bee6abf32f838cedf28645a3c8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codesignOptionFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1ee62841d2c169b988b4649f7a42239ad47981d6644501bf2951f4623f38fcd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appSandboxEntitlementAndBuildSettingConflictEmitsExpectedDiagnostics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":802}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb872868dbc997118e936ee771a0200bbed1f8f888d90d7c2c3323b3d3c6383f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codesignHardenedRuntimeForSupportedDestinations: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":886}}}],"partialFingerprints":{"codehealthFindingId/v1":"a76fce359bc452ae5d2655a2925af09196de40a1eb9954d353b4e6bf4a93a0a8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codesignWithLaunchConstraints: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":1031}}}],"partialFingerprints":{"codehealthFindingId/v1":"77fb88cb851f77f1a2e5ef72158ea2c8f67b6b31e87752c979ad3b2f219a15f3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codesignWithLibraryConstraints: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CodeSignTaskConstructionTests.swift"},"region":{"startLine":1103}}}],"partialFingerprints":{"codehealthFindingId/v1":"b46d934f13fc488585a568d6951ef1f4b2fae6f3d75851d5f5ae3d1338c3347a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testCohortArchsWithSoloArch: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CohortArchTests.swift"},"region":{"startLine":452}}}],"partialFingerprints":{"codehealthFindingId/v1":"23fa8b4f4219266afab68010f8c5b122ada5f40e1b19f2239e448432f06571b0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testCohortArchEnabledWithOnlyOneArch: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CohortArchTests.swift"},"region":{"startLine":605}}}],"partialFingerprints":{"codehealthFindingId/v1":"a60541d43e1191160ed5ce46e721a08e28390c62c205039fda76702dd62e597f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: remoteServiceWithoutPluginEmitsWarning: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CompilationCachingTaskConstructionTests.swift"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"9da6c6ec1bc56ae026253ebadf90c521099663fc492d4f92ed316cac8295bd32"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: imageFormatMCCASSupport: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CompilationCachingTaskConstructionTests.swift"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a91d24465d4ca61b786d6f790ed638375530842a8d120f0da3e79ebd5227711"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: clangPrefixMappingImposedOnPackageDependencies: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CompilationCachingTaskConstructionTests.swift"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"02e58a2b6afaf50c238d59aef8a07d429b9ab3df01930e1844cce1574477b6ce"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customTasksAreIndependent: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CustomTaskConstructionTests.swift"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a3dc45ac0d9bd27ac877e6feb922309fc72744bdab95ad530697effec1956f9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customTasksSucceedWithNoOutputs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CustomTaskConstructionTests.swift"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7ed6a392015cc4766070466d2fd8136b0810c71096d1eb9a0957f742808e368"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customTaskInjectsShellScriptEnvironment: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CustomTaskConstructionTests.swift"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"e85d31d838664f52a288696d055b7ab937f8cb02b5c78da62cb1a26b6cbef7ff"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customTasksWithDuplicateDescriptions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CustomTaskConstructionTests.swift"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fc016951602a401ded06f57a5ceb14e2f9b378402df7737569dda03e8750746"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customTaskWithModuleMapOutputIsCompilationRequirement: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CustomTaskConstructionTests.swift"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"eab52c0e627a08413a3aa496fd5c588c15e70c404e940bf9c4f96d3bdf41ffcb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customTaskWithNonCompilationRequirementOutputDoesNotBlockCompilation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/CustomTaskConstructionTests.swift"},"region":{"startLine":366}}}],"partialFingerprints":{"codehealthFindingId/v1":"db4807a663d0de164a83e5b36e4d81963e3ee115b4c70d69b95a0b5a9174e352"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: debugInformationVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DebugInformationTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a63750ceb2ed8faae69bb2bf3aa6bf9746a2fe86cc6fb8126f1005776a90fdc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dSYMGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DebugInformationTests.swift"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff7d4a18b477e358c71086348529287a913bdedeca091d1e9bdd11fbc9fd4dcc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dsymutilEnvironment: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DebugInformationTests.swift"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"8862db65f2ae4bd17b2d13385133d1195861c053d65be10bffb9324f48f4a2bb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codeViewDebugInformation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DebugInformationTests.swift"},"region":{"startLine":372}}}],"partialFingerprints":{"codehealthFindingId/v1":"c121850944369fa6d888afbeb6645438e20d94d500a44032310ec5db4e78e3ca"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dsymutilEmbedResources: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DebugInformationTests.swift"},"region":{"startLine":423}}}],"partialFingerprints":{"codehealthFindingId/v1":"27b4762196248cfae670a25b1ce890b64843420a08887ec7b3cab3348fc0cf32"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: tasksPlannedWithActiveDependencyScope: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DependencyScopingTaskConstructionTests.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"6453d40e40969ad797e73cbc372649d54ae9fd52d7b97cbb35f57676551e226b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: tasksPlannedWithActiveDependencyScopeRemovingInteriorTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DependencyScopingTaskConstructionTests.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aaf8d3cc1d6e176ae12f573736ba5cfbd46e4a5e9275701602de06b5a468032"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: regularBuildDoesNotBuildDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"2add737ce3e2d5cd998dd6f415121604b4408ebbc8d27b8e45ae198be97ff15f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: extractAPIUsesTopLevelPathForVersionedFrameworkModuleMap: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"46f278ea66b872ca55475dc320b0fa1f39da8cb65d5395c07cb22c769f00d3eb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildWithAllFilesExcludedDoesNotBuildDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6880d1800c4c35d329990313d3ee517beb468903c276b58f85919ea22a41ce5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: documentationBuildDoesNotBuildDocumentationWhenSkipBuildingDocumentationIsSet: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b6885e5c8f1b46e965e2472acb28ac4e3fdd886c5b1f9154805195f6d2a9ef6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildWithSymbolExtractWithoutDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"723645b6713aadedf229f8e091671e09ca418f96feefca4f907edaa1ec5421a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: documentationBuildBuildsDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"958020edadf330b7970e866da92a0925d74e5d17bff1cc6d307754d6c6d345af"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: runDocumentationCompilerInRegularBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce9f218ad53af14cf5d9c42c792fcd4a14fe2b754157356e0773895ae5983f41"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: runDocumentationCompilerInRegularBuildWithoutDocsCatalogInput: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":288}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e676c47bfc2202022a40ea861069c0234fa54a740f8b7e731153440bfe612b9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: runDocumentationCompilerWithZipperedProduct: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fd76135fe58a106170f86f8df3e012c7575ad71cc4cbd960204d861df6c53bf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: runDocumentationCompilerWithReverseZipperedProduct: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf41db7106098e4ea23a2ee606cf9ae4aa87762e8d447bb1a48b90278c06954f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: documentationIdentifierFallbackValues: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"4437492b0b0eb56db858fef2edbf5343aa9e1ec54c8d0eebabac7c8507f6e1aa"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: documentationTemplateBuildSetting: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fdb37387ee61b500ee7fd7a1eb6e17caca28eb98bc583c41168f7729561b3ab"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithoutExtensionSymbolsSupport: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"745b493857d8a2d97cce59cba7688ddbce90979b5db211de5b859582ba3fc15d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithOtherDocCFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e98517344476731a554fc6bf7a3ff24bba6c0402a71753daccc202244ba84a3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithHostingBasePath: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":407}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7032d9713fe8a58a331e079c8cd560e31ecbc64bfccc9e17918c0456e6848e4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithoutTransformingForStaticHosting: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"77f0c8bac948c9253cf9ee6893dd85faebadf2a4ac1e6c33a0795529097e3d35"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithSPIObjectiveCDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":441}}}],"partialFingerprints":{"codehealthFindingId/v1":"0273900985b42da2fd5999f5a55ffc5b13864fb50e20741a903e4dcc488b8872"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithSwiftDeclarationsForObjectiveCSymbols: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9f18126822e3265872091d2ace978106a38dcfb73dc0e0d17a4c938fd13ba5e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithoutInstalledCompatibilityHeader: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6186523e9be67df25e3153f45296fded8629778b9769d548cc754a073529e0c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithContradictingObjectiveCRelatedBuildSettings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":501}}}],"partialFingerprints":{"codehealthFindingId/v1":"381f697c281943c3fddbe6b71a2ae7e8df7e5ea4220913f4678a4c18b530596c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithObjectiveCDeclarationsForSwiftSymbols: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":526}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aa942a6a95f4e5598188e01eb0d482be67dd793f0ad21743cb2adc6b9b49d90"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: objectiveCDeclarationsForSwiftSymbolsWithoutModule: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"46e732e30febb5d94a6feb19e91df49ef4bb2f1a5beafd5fcc963f0af34bdd7d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithoutModuleSupport: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":569}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6e361e649285a03a856ec88c287e805be463d97b59eb098f823acfaf99dab23"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithoutARC: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":589}}}],"partialFingerprints":{"codehealthFindingId/v1":"fff6035411e246ab7c13714f688e8ee8f730faa9dfdab38caaefb3aecdaf0cbf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildDocumentationWithOldSwiftVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":609}}}],"partialFingerprints":{"codehealthFindingId/v1":"5be3744c1333f1ca82a9198c9cb5b8d86b1f7108ab862e6400a523fd53308f26"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildWithAllSwiftFilesExcludedViaDirectoryGlobBuildsDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":629}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6a4f94aa3ea7f3889c1925b787cf3fda8a3f178f427e038a02ce07473ec2583"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildAppDocumentationWithoutHeaderBuildPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":649}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c481ce7fe732409f1405d470648108ed7efcc5496dacc5c7436c1451ad103af"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: privateHeadersDoesNotCauseDocumentationBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":671}}}],"partialFingerprints":{"codehealthFindingId/v1":"563388465b47cfc61ce0d468dbc94099485a679f52a70ec2fc72a98416f287c6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleDocumentationCatalogsError: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":687}}}],"partialFingerprints":{"codehealthFindingId/v1":"800b0ab2e783961407832db65580a2efc6eaadabc8f20a40bb4aaad38efde7a8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: additionalBuildVariantsDoNotCauseDuplicateBuilds: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":703}}}],"partialFingerprints":{"codehealthFindingId/v1":"baa8e1d9eaa4031a65ae3b779041b8b7e29549d2fa4d2be56ac17b74d2a7130d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: expandedTargetTypesSupportBuildingDocumentation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DocumentationTaskConstructionTests.swift"},"region":{"startLine":836}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7b7cd45f22138efd95900f5b2943c807acd1ac4692a28de33c44594ad0c044f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driverAndFramework: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DriverKitTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"7216b66b5284a87e9cfa0e6bc4a08a60e57defc3146e92b34828f078a920dc0e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driverKitFrameworkInstallHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DriverKitTaskConstructionTests.swift"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f20cc99e759b062f80ad8afb71ee0d768b6c2986e8a1cb6c2c399489b018a50"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driverKitAnalyze: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/DriverKitTaskConstructionTests.swift"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"eea342a6b9e624e8b58904f1e9380c13f27a1b0d7aebff3b6b98c10029312968"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationSerialBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2541a07c53b1fee39cedd995dde1e8abbd5baa2751846c8d31a2a653c84bc1e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationParallelBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"883928e6dc781f67d30361b800e4ad39046031b5fe639ba304f55b63e9790dd9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationWithScriptsAfterCompiling: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"801325cb09e4fed861fd998f9b834282a3bc90cc1b618012b8e545b9b9365080"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationWithScriptsBeforeCompiling: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":272}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fa6805baf3006de948af404b7348d2c2fb0ac06bdf81d19a2b5287da82da82e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationWithScriptsAllowed: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fd98886c5a95db9a19f0c7b4d795f0754e862405b7a9e665996df9bf440447b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationBasicsWithSandboxedScripts: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":370}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0c11b7f9b16cee751bf82145a496563f5da306bdb1a6747dd67423465db5634"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sandboxingDoesNotImplyEagerCompilationForAggregateTargetScripts: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":417}}}],"partialFingerprints":{"codehealthFindingId/v1":"69ef59a7e8a39f44bbef3e4c3657a897735b190aceb622cc574b4d237b7a1da5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: headerGeneratingShellScriptsAreCompilationRequirements: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":454}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f71e94e383b3bb86e80088d96bcf5be9b2e333472bce632778727c6a4cb5ca2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationWithTestHost: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":495}}}],"partialFingerprints":{"codehealthFindingId/v1":"316a646b1912b1ebb72eb34b8165ed86dfdb5a1341e3011fa96f2f74a2a04bb7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationWithDeploymentLocation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":567}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfd20e8d6c246d997ff76f8092b72f8ffabcb770003e1ae705d5d3f2150445f6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationRequiredWithDeploymentLocationAndNestedInstallPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":615}}}],"partialFingerprints":{"codehealthFindingId/v1":"83a504cdfa26f903fe9851637ef08623ed1ef0a8415b8bcbdbf0d761946a6d7a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationDisabledByTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":657}}}],"partialFingerprints":{"codehealthFindingId/v1":"349d107c808ddb1bd1b2e1a52dc27fe0309f176595f44157340daa484cbd2d39"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationDisabledAndRequiredByTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":718}}}],"partialFingerprints":{"codehealthFindingId/v1":"af499cfd7e4d478e20d9bf97dac404ba8a84a1ae63be414778c5dad6974c3bcc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilationRequiredByTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":756}}}],"partialFingerprints":{"codehealthFindingId/v1":"496f2b52f9534d67e263212cb6b5dc2518c5bbf05ff25fe4e25f4efd67846af1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerParallelCompilation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":793}}}],"partialFingerprints":{"codehealthFindingId/v1":"a510ff7115d6f98780a6033acf22ffa35599afd26b058e540005eff94e5b96e8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerParallelCompilation_HeaderGeneratingShellScript: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":847}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b8b1eea5ee4d598b255ffd6d61fe6c2395f9200d656222c3bcad54d47964d46"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerParallelCompilation_MixedProject: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":910}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ccdc9bd56ae7f472402610500ba7f66cb63184936dc72b71c3b5987086e1d8e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerParallelCompilation_GateTasks: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":980}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1d13f90ed75316c32cc0ab3d81d17a2e0df557db70f6e866aeab89c124462a8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerParallelCompilation_Precompile: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":1106}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad1d4ca4c371096e1da2643e11fd7f85d4ff7a14a6e4c599f0af68601424890b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerParallelCompilation_SharedPrecompiledHeader: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":1183}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffaf53d789d3f8f22d6562cb4fc14770573281205ebd7f07d2d6430af23035cc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: yaccCompilation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":1443}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b7393bf9f7dbc3ebf2b25e60b8fe0bde873bf26a7e83ea45bddce1352e7f1e3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customBuildRule: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":1531}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9877d0d1902de6f66479cd53ffa5744e95cb00bf08b16c8f42bf010889f3973"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptBuildPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":1618}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ea5ea6fd9388fdd0349990476fb90b97ba0005e79c9debf47c5188b43162430"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: generateHeaderTaskOrdering: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":1713}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7fd6221f441f9b2a90450d309067f938eeaee9a9845f57d8679a65da78e4aaa"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftEagerCompilation_explicitModules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerCompilationTests.swift"},"region":{"startLine":2071}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb616f04fa868c7f701cdbaf2c44b839f7c27435f0ec11f5f9c8cadb6a5cebf0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerLinkingEnablementCriteria: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerLinkingTests.swift"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"381fbfbbbd0fd378762753d328eeea36b93bb277653ac39f7de93e5a15464202"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eligibleTargetsEmitTBD: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/EagerLinkingTests.swift"},"region":{"startLine":297}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5a3df3ca71bfe4c6c1a38ef8f8b1294997ba82c7258ca71e3380f803dc8c4ae"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: exportLocBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ExportLocTaskConstructionTests.swift"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a4c12d9840f3560ee46d528f4412485f40fc903a5d8e614a4813739ba9e4553"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildActionNotEmittingLocStrings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ExportLocTaskConstructionTests.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bb7e2ea24c4e906e111b06eab2e632ceee9fdfc048d00fa1faf329ca5b74cd2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildActionEmittingLocStrings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ExportLocTaskConstructionTests.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"b25ccc4a6595f294b91a43399dd1c1f55043fbede62d3ac31047a793544daa62"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogGenerationNotEnabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/GenerateAppPlaygroundAssetCatalogTaskConstructionTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"67dc66f89c6b6171a75be5a6264cd08f7807fd3c0e1edbf7cae07492c38a0767"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogGenerationDisabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/GenerateAppPlaygroundAssetCatalogTaskConstructionTests.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c96de61c7b14e65d526907f5061cc3fb4cffedddeed5053b3d72f67d8d26ced"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogGenerationEnabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/GenerateAppPlaygroundAssetCatalogTaskConstructionTests.swift"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"38fb58cfe3b48e8f63391bd1989da649feabda413a8ac41b32de28f4443c395f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogGenerationWithOtherAssetCatalog: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/GenerateAppPlaygroundAssetCatalogTaskConstructionTests.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f1a9e2712e92af0ff91624aa9052539d19043b95a673432b1caf7f53e20ccba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleHeadersOfSameName: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HeadermapTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"9521891d28e8ccffe29dc606c0ab7e1c69952c7768936cfad8126a0e812f0f79"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleHeadersOfSameName2: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HeadermapTaskConstructionTests.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"d165921aa1f97664cf1c89f0228bd191b5706ca7f7408a01c831cfcd9c7b73a4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: allHeadersHeadermapUse: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HeadermapTaskConstructionTests.swift"},"region":{"startLine":379}}}],"partialFingerprints":{"codehealthFindingId/v1":"06bcd240d75847a96f694f253c1bb550efb918e1267b498db97391df31dc3b8e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkEntriesForTargetsNotBeingBuilt: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HeadermapTaskConstructionTests.swift"},"region":{"startLine":496}}}],"partialFingerprints":{"codehealthFindingId/v1":"a81906c28cec38121e8e76668836de100e808bc47e61745d907e18beab6bc88b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7124f41806f0a0b755a7033221efaee4a7f968013b9e9ccc27fac9ebe5d9fd5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hostToolBuildsForHostPlatform: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1eccd65e23fff1126e164e3bd9657c66b781546236e429d17887b8c03467f69"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hostToolBuildsForHostPlatformWithSwiftSDK: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfc3917c1c6865634da58c526736ff4bb9b29756c9fbce3e38379c15bba72e44"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftMacroPluginLoadingFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b075164949f2d5ff285a94ada97d7bf7a5033dc36da6c04f689f402637f09bf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftMacroBinaryPluginLoadingFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2e740fb72ccb9501a3b888f14287e7a0b67fc0484fdb6662a9f31eb04b8046f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftMacroBinaryPluginSortedInputPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":602}}}],"partialFingerprints":{"codehealthFindingId/v1":"87ccb3e5f8d510008a80d2620b7aff8ee70700298442d763ef48502a9ae60a0f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftMacroSwiftSyntaxSearchPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":688}}}],"partialFingerprints":{"codehealthFindingId/v1":"acabde61628362d5d20a765aa5138c62330d03a5e5509834deddf98009e092e2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: inAppPurchaseContent: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InAppPurchaseContentTaskConstructionTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"322d554976f7611db3d0ebee3c0786c00757c8bb11b109d476615d401476002b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftExplicitModulesInIndexBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":611}}}],"partialFingerprints":{"codehealthFindingId/v1":"6062a31d90680f782bbe3f322d50cd2f96fc5946f7201d7308483fdc8229229b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftPrepareForIndexLazyTypecheck: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":660}}}],"partialFingerprints":{"codehealthFindingId/v1":"87f0cdf194809f640e6e2ed1068445ff9bb46b2f7a657e47139c7208ace5398e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftIndexBuildWithoutOptimizationOverride: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":705}}}],"partialFingerprints":{"codehealthFindingId/v1":"3270a5443200a171c6524951463628538d069d605b663022a0e936a7f0bedf8a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noIndexStorePathForGenerateSwiftModule: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a0f05d012e4af8e6b711fc7202ee960378cabad3fed14962cc8b125ca057be4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: customEffectivePlatformName: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":815}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5a32ec7f84a3e44d20bd7b191eab45a64d6c414e792ad10adf92c2b8a7fe459"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: withCompilationCaching: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":988}}}],"partialFingerprints":{"codehealthFindingId/v1":"8deaef7d8dc5fb18c33696eda5fe0bc1094b6362b374e4437ebe7e0a1f586cb0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptTargetWithoutOutputs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":1186}}}],"partialFingerprints":{"codehealthFindingId/v1":"dedcb70166167f61921360ae428ab4dfb5d2f3ca85cae931333f48a2323338eb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: aggregateScriptDependentByMacCatalyst: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":1228}}}],"partialFingerprints":{"codehealthFindingId/v1":"19c91c4a71e1ee63e7771b8a648c57f0596ba44ab5068da0cec916712c0ea597"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystAppWithZipperedFramework: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":1323}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bb30b119f5dbf5400568d9de29e40e38529755ef90b2a3c6e5d0e026ff026d2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: singleVariantOnly: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":1505}}}],"partialFingerprints":{"codehealthFindingId/v1":"300fb1054161a395d99431db271589de4cc12dc2e9a57217f297b192ec532cd7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noAnalyzerTasks: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":1574}}}],"partialFingerprints":{"codehealthFindingId/v1":"e37ccf54bf053b520e046cfb961d72cc448cba64494d554b2e03d580b98d9ed5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: moduleMapTasks: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IndexBuildTaskConstructionTests.swift"},"region":{"startLine":1620}}}],"partialFingerprints":{"codehealthFindingId/v1":"75e1a1cdcc0b52a3323ef27fa92303fda10bd1abec602727d0b162f4cd696ffc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: infoPlistPreprocessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InfoPlistTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67df9fa4086f798842e3314b0230f5c2e9312c596e664a79845e5aa530b9a01"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: tbdNotSignedWhenNotProduced: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"135aa27cc1d3a4ca60ca3efc0cb3b4099d77aa329564090f3444b28d43ab127e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: TBDSigning: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1986ba1463ca5284d6e6e6a325845b3d0111ab156da7be6396b7c0ec7940ea3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"715b40e4cd967e8ab09b1a8d7edd9b5b523acbfe336b8742d413e9cdc35fcbc1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkBasicsWithExtraSettings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":436}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8cda07b9978873efbbd959a511f3e65b3938fe729e17ed52389947dc50435ec"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkStubifyMode: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":785}}}],"partialFingerprints":{"codehealthFindingId/v1":"86859de3bda821ffc31510da1e30b9ac02a75f8574b9099fc03e3dd29c0f0f7e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dylibStubifyMode: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1118}}}],"partialFingerprints":{"codehealthFindingId/v1":"d32ea1b6465b2687c49deb9243ccf206dbbe75d0bae8a211ce5abb36b0aed81f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noStubify: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1165}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bb4521510ac264aa6a89f785cbe617cfe4a1b5ae77fe9bbaa80267115319e6b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installAPIErrors: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1232}}}],"partialFingerprints":{"codehealthFindingId/v1":"c18492f5f662084af738d9f973a2be8bf5feaaeba4922a7e98b3e0c7a4c7f340"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIStaticLib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1414}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc67ad9b84ce89fe1700fb50a3e6c3755ed52ef257f84875a91a9e528b0107f8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: tapiReexport: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1478}}}],"partialFingerprints":{"codehealthFindingId/v1":"6694901b30bc1913e7ed81001aabab41ea08043bade125625f475d7424d8092b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPI: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1528}}}],"partialFingerprints":{"codehealthFindingId/v1":"5764329e7f2e5d8ec717edb9e45dd358adddef717ed626ec10abd18692eebf62"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIBuildRuleScripts: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1662}}}],"partialFingerprints":{"codehealthFindingId/v1":"209516910b2bd7a2312b68aeaf0516b70815031057b0bf4e1199db834b642e80"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIDylibTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1722}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc288fe89d0d6350b064ce43e3b055903a1ff9bf9c24438f25d7727e34c0d03f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIMultiArch: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1829}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dcf9df8391a75cc6b076ed15433c6374ebf5ced2b614e6de0ef833486a484b9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIMultiVariants: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1932}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ca6ad8e46cbe67658c69712e742e8330124e79ca85bf730a58e65efab405363"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIErrors: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2079}}}],"partialFingerprints":{"codehealthFindingId/v1":"5970b4349df1f37665b0ce0924cd35fd752e2dfcfd76e059687a358d2b38fab2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPISkipInstall: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2129}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa328ec04b8a3e12d537214595c200af5d1ffe1260ca6ab8cf030dc584b7096c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPINoModuleOnlyForSkippedTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2232}}}],"partialFingerprints":{"codehealthFindingId/v1":"00dc49333aef6f024f6c690248fe9cec509bbd5ba0a75331767b3bc30f475418"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInstallAPIPackageProducts: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2272}}}],"partialFingerprints":{"codehealthFindingId/v1":"79f30c802fa50fc564690d7e5c875855f5b737a51345c5256778364df27dd267"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkBasicsRPathAndDSYM: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2596}}}],"partialFingerprints":{"codehealthFindingId/v1":"23c95eb69b7c47f709959d912887e9353eb295403525653f09f7685b24d8f36b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: frameworkBasicsDisableDSYM: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2722}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a53e418ff9bb24214328a7f342e892c849891613d1054436241aaf0138972cf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleEmissionCriteria: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2843}}}],"partialFingerprints":{"codehealthFindingId/v1":"52f13beb2f6e87bb6493532e24b0232538927a1ff45ca4860208a7af0fa0bd96"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"e087e62cb3ef74e9c766a2c5bd2ec3fe4d4b25b8f53b1bf24470807cc0a0666c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocLanguageRespectsKnownLocalizations: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bbbafa865fc607620f696d617bd7bc34495d37fc322800b10ab897b0a613e40"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocIgnoreUnlocalizedResources: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":299}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c6ced95047c17846a287d912357678a0d3c7c6572a007db3960044fa72d9d0c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: embeddedBundles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"08a3da24ae2d0efc0f41497a15b737f4d627f554875a75344104749ace474310"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: resourceBundles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":548}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c341a6d9ad03f9e4c93241f827f1d8e1ae3057ab27da5325ea19039d39312bb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: embeddedExternalBundles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":694}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fa5118da71f2e2c0022d392290ae85c41ecc406885b3c56d8331ad1592b44f7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: embeddedDirectoriesInResources: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":804}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6a4561558062e959dbf074271e2110933601c05bc1afd0ec0a2a98a7f04a470"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: embeddedDirectoriesInCopyFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"64030f2c0c8f0f15f275bed0f6d80e3b67fec6c01468472f8d443efcef63e90e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warningForMissingExternalBundles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1028}}}],"partialFingerprints":{"codehealthFindingId/v1":"acdf253e8016d0667f8195035a61d59ece81fe144d95a7dbf657201f6b99c589"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFilesForLocalizableFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1075}}}],"partialFingerprints":{"codehealthFindingId/v1":"369752d969cc39b08b3d5aa4e71617a9865904671880191133bab202a76a4807"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFilesRulesMergeRegion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1164}}}],"partialFingerprints":{"codehealthFindingId/v1":"655f17cdd4bf06fa4ffecad7c1a125f756fc9542eaaf6b99d7643b108484871f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocForFramework: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1241}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e33822329f05776e8f7db1b7dcdd5a5528d4e0947509642ec79b9b28eff511a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocForAppAndEmbeddedProductsInWorkspace: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1355}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fe7873d1ff016beb05a59c7632deaded0c0634c578310fdc5ace4774bdc71f0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocForSettingsBundle: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1501}}}],"partialFingerprints":{"codehealthFindingId/v1":"6339260de94f9bb21252d46805826747822dc82501797d8113c1923edb014df3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocForSettingsBundleInCopyFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1603}}}],"partialFingerprints":{"codehealthFindingId/v1":"43db7a28beddec5424bca6bea8b9378750ca1256bd7344c24b1a0c460d72ddf6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocForUnlocalizedSettingsBundle: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1703}}}],"partialFingerprints":{"codehealthFindingId/v1":"acae27671e46bf5073aa09daf472187e1da978a599a5189a12d894e45559b700"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocWithShellScriptPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1796}}}],"partialFingerprints":{"codehealthFindingId/v1":"725c55a836f3ddd21de9e4e60024eb6cbf05a9564e4babccf1db79e6f3bebbe9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overlappingSymlinksForFrameworks: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1840}}}],"partialFingerprints":{"codehealthFindingId/v1":"13221bd6c5da4bab501ca9ecf197ca82ede5d5a9be8989c229bc89a41f809d07"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocSkipVerifyModules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":1932}}}],"partialFingerprints":{"codehealthFindingId/v1":"b772644f80731fae4509a723ba750945652555d4903f3f04b445135e2397a431"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocSkipCopyBaselinesTasksOnTestsTargets: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":2060}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f8cc5e7c0f6ebea5f567077c0f9b219d0c859f0f3ed9b2c7398970af42ca3ec"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageResourceBundleEmbedding: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":2157}}}],"partialFingerprints":{"codehealthFindingId/v1":"549f121aa58d4f11e1b59f7177780fab10d6c0763a52cd191e49dd97e308a8bc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installLocSSUAppIntents: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallLocTaskConstructionTests.swift"},"region":{"startLine":2245}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe7202d083ff415809de570f3ab9abfb153de2dbef315ed93b8375ae86ae54e6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: hierarchicalSYMROOTLayout: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallTaskConstructionTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"e79f12e8c7de53979f612d9cc740417bc15f9c0fa13b0dfc11b54f802c3a268b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interestingInstallationDirectories: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/InstallTaskConstructionTests.swift"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"d33bc3b0904a3f8d4894dd779e6a15209bc1671ba03160a85926d07c4a6e4f6d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: intermediateStubGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IntermediateStubTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a543c43aee8035f5dd1f8660ce8bdffd7a3e5819e2a0f0fa30b80e419965b4e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetSupportingInstallAPIGeneratesNoStubs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IntermediateStubTaskConstructionTests.swift"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"063334d451c81641cc225e89980ab8573cd71c8106eacd4d1454aec64b32afcf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetWithUnsupportedMachOTypeGeneratesNoStubs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IntermediateStubTaskConstructionTests.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"5eb22d92bc128595743a4dc6a0dfba56bc0f863792b0ced8fd0e900265b4fac2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetInstallingStubsGeneratesNoIntermediateStubs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IntermediateStubTaskConstructionTests.swift"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"87e48afc663fea44503374f88632161b648f9e6ca619bc0ca26f2caffd77fc7f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: targetWithReexportsGeneratesNoIntermediateStubs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/IntermediateStubTaskConstructionTests.swift"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"19da20a7d2a1279423f813f14c966f9c28689819d38319b82e86dd241f384e47"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: kernelExtensionStandardArchitectures: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/KernelExtensionTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"e671f21e1ec25ee2fc30ba978ee1a8ba29868bd3f132ce8910b695e598addb4a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: kernelExtensionModuleInfo: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/KernelExtensionTaskConstructionTests.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"18516ce7d85a7cc953a5c09a33b4cf41c7a0c7015d383522dae24de3bd7c2d48"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: kernelExtensionModuleInfoGeneratedFileIsExcluded: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/KernelExtensionTaskConstructionTests.swift"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f7288f3fb2b9d1671c0299b7785a4b6d656c7775edeaa9ba9c05fc6b22f67c3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overrideKernelExtensionModuleInfoBuildRule: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/KernelExtensionTaskConstructionTests.swift"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"30061eca03e9e50828ada02fe6e6b52c8777ac6a1b625f883c67b01443f88aca"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: libtoolNoWarningForNoSymbols: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LibtoolTaskConstructionTests.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ccf0cefa739ee492778cebdc22df7c410c1123aea25a66afba0eeabfe043401"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkerDriverSelection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LinkerTaskConstructionTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"f82436859e24b45760cd0faa20fd3ba4dad85be46115e5d43779e96852360e69"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: stdlibRpathSuppression: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LinkerTaskConstructionTests.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea642545380fdc99bb2530d870c31024a43ea5d0a6c5b0d1945d22cbe8713df0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ldSanitizerArgumentsAppearsOnCommandLine: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LinkerTaskConstructionTests.swift"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"1128ec2ebaca3dd9cc3aff463e17d1da42941f6c44c0bfeb0f4ef2f6cc2682dc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dynamicLibraryWithNoSourcesButStaticLibrariesInFrameworksPhase_Xcode: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LinkerTaskConstructionTests.swift"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d36ff54a712c97965f3e8e73873ba05c8bac75f8fd95336beedb0b1dd3650f2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dynamicLibraryWithNoSourcesButStaticLibrariesInFrameworksPhase_Package: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LinkerTaskConstructionTests.swift"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5bd03ff8db5161d654a4b903fb264605164b5520a9642912e5400d752f4925b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linuxSoname: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/LinkerTaskConstructionTests.swift"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd4f9262a52a24918c896d6caef23a14978986b77a5af2219096c2575bf3df7f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkWithMergeableLibrary_iOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MergeableLibraryTests.swift"},"region":{"startLine":1297}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcd0dcbd8af0d4d97ab7286641e0d534f151c459570fd06fabc331c2368008b9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xCFrameworkWithMergeableLibrary_macOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MergeableLibraryTests.swift"},"region":{"startLine":1798}}}],"partialFingerprints":{"codehealthFindingId/v1":"46b1ec9a89e3edfb52bf9a18b90c895baa22f511b11cc3ef0b7bbae22d78df25"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MetalTests.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"5367aedf2c14dfc14a1f552755f8f9ab3ec167a31fdbe93917f32a56240b0e4a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptionsNotAddedIfIndexingIsDisabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MetalTests.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ce9db3c08c48840c2224d764c808acee35ed6fcc59f98cb5890f6074302e51e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: builtinModuleVerifierTargetSetDiagnostics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"9856b29d446433590ebf3e4fb290207a9fd68d55251b02a27b34e0d7d36475f3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: builtinModuleVerifierSDK: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"75802afcb2791ee214fc1552c660450799f987cd00d296e5e1fec2e2bcea65cb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: builtinModuleVerifyList: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":687}}}],"partialFingerprints":{"codehealthFindingId/v1":"6df2a00ad45d5c66f379524c2fbae797b83807f43d2eb87f37e9e0c801c3e27b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: excludedFilesBuiltin: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":897}}}],"partialFingerprints":{"codehealthFindingId/v1":"2be90e735b9b691fce7b18baabccc7c1667345a4195dc2af70df398bcb149a4d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: excludedFilesExternal: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":957}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf3d7eb4e6e7e1eb2e2443c2c6c4ccd81bb89e2fe146ba9055a72cd946cc9983"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":1986}}}],"partialFingerprints":{"codehealthFindingId/v1":"c093e1411e0271f669a7a344c496261864ce58d32538935486d5511ae9ca2800"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: modulesVerifierEagerCompilation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":1991}}}],"partialFingerprints":{"codehealthFindingId/v1":"73de6ae2b7a14d36dcec42d4d04fa8a083a1a25ef1184f1b49c6ae505c003af7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noModulesVerifierUnlessBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":1996}}}],"partialFingerprints":{"codehealthFindingId/v1":"32c1a729683bb397f66f17e33529a6f5489b1213d7500ccdaf73bdb724bc6135"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: modulesVerifierIndependence: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2001}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f7ee1f083ba08b97b7ed156e219c9d354645beff2fde47fe30a2e3c4c76c287"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2006}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1984ff280248f24a05eaef81fafb43254d1c8a377d728edd0efbb1fd78aac44"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScript: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2011}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcc7016bc5fbcc6bca65af9c4cad11398b8a5c27c41b07d46953bcccc57f0181"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftObjCAPI: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2016}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb7470d1202838c002793b36595e8faf0e1665308f18a6003a394bd390e25234"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: generatedHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2021}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ca1c5cfdd80884888ed7f948861e21928a2edff9cc140355bc0f6cee1dbcbb2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2033}}}],"partialFingerprints":{"codehealthFindingId/v1":"63f7c777ba9185a4521d8f128323b5b2df72c5faa45fec9668870865786d3170"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: modulesVerifierEagerCompilation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2038}}}],"partialFingerprints":{"codehealthFindingId/v1":"28d6f2c3ebc63f9f20cef0e99c41a5ae83014f31ac4be789fc3388d245624e2c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noModulesVerifierUnlessBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2043}}}],"partialFingerprints":{"codehealthFindingId/v1":"78020ee6dd87324351bd9c3bcde4b63debc5da980880a92c9d15cdd9b479d6ff"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: modulesVerifierIndependence: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2048}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf7f05773bf328d79b3c6806ed1d1b1e4a553faca4662200032fc7b9a8c3d677"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2053}}}],"partialFingerprints":{"codehealthFindingId/v1":"16ed541ac0fc9a987faaf2a821b665284dea28d3fb98869452172f39fe0adf7a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScript: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2058}}}],"partialFingerprints":{"codehealthFindingId/v1":"738b9003ce13ecd1ed118a4ed5f0ac13d5e4131f753d189fa17d6524b589e912"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftObjCAPI: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2063}}}],"partialFingerprints":{"codehealthFindingId/v1":"d37e315db9097836a35214ec69e15552599bbc5e003beb254712f8e45c965f5a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: generatedHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ModuleVerifierTaskConstructionTests.swift"},"region":{"startLine":2068}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d6f7e3d2d99f97338cb1cf7b53c468cd488bb9c0403f27ae2b0f2d05536ab41"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: singleTopLevelTargetSpecializedDeps_PublicSDK_ExplicitDependencies: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":640}}}],"partialFingerprints":{"codehealthFindingId/v1":"e94454a23e1f0e50ce6b70baa6f8409d4473c63f30e2f5ec617cfa40f6e4e011"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: singleTopLevelTargetSpecializedDeps_PublicSDK_ImplicitDependencies: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":646}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f8c895c6f1a4ca9714edf0a7851fdd6eda5432392e0e8a983dd6f92caa30744"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildingSpecializedFramework_PublicSDK: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":670}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c5cc0d09707b89dd8a287787d6aa63f51456d2dd62175a1eea95a0f32ac54ac"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicMultiPlatformScenario_PublicSDK_ExplicitDeps: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":706}}}],"partialFingerprints":{"codehealthFindingId/v1":"03070c55d7a220e72bce59fb1141ef33ddb0bed46b27706bf404c61a8a1a9b6f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicMultiPlatformScenario_PublicSDK_ImplicitDeps: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":711}}}],"partialFingerprints":{"codehealthFindingId/v1":"774c62384bef3d91da561d8f845db1b33140a15304984c747171986186b3f452"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macAndMacCatalystFrameworksDoNotCollide: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":719}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a993c5a022041c1e67ce86b135171a6333726b91cd8d6961ea944063d346aaf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystRunDestinationSDKVariantOverride_macOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":818}}}],"partialFingerprints":{"codehealthFindingId/v1":"f52bc4135748ba48ea1b0a408c9e8dd8083e154cabf241f912a23a0c24000340"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystRunDestinationSDKVariantOverride_macCatalyst: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":823}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb835e2b99c404166997be9a52e6c569d909f5b7f0d11ce853592e4501e10e77"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystRunDestinationSDKVariantOverride_iOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":828}}}],"partialFingerprints":{"codehealthFindingId/v1":"dee1405e261f7438c7b8399c6aa40e97eb332e5131b0f1c81738b9dad29c1d59"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystRunDestinationSDKVariantOverride_macOS_Auto: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":833}}}],"partialFingerprints":{"codehealthFindingId/v1":"8db765782d8e2e2fd723fb72340fc905bd752e4c957925c835776c474ef8265a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystRunDestinationSDKVariantOverride_macCatalyst_Auto: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":838}}}],"partialFingerprints":{"codehealthFindingId/v1":"01c35de86b2cb14271454c353d5232be1b296f5ac40235a8ec2442c7791997d9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystRunDestinationSDKVariantOverride_iOS_Auto: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/MultiPlatformTaskConstructionTests.swift"},"region":{"startLine":843}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a38b52744b713a60f36a3f677783389932faeb0aff62b31326681aead2d8fde"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: objectLibraryBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectLibraryTaskConstructionTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"1036d95b475240b0f64acdb183101d3a4d54dde5b4ac6e3cca6364fa98ab0dd4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: objectLibraryDoesNotProductStipTaskWhenBinaryStripInstalledProductSetOrUnset: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectLibraryTaskConstructionTests.swift"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"358d18f9986269a4aa48f9a76a9ae1ca5a49e875c3d4717a53257e0f936d6362"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: objectLibraryConsumer: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectLibraryTaskConstructionTests.swift"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c8d06bbd7c2aa2ebd5185dc16cd0edc1ebaa6ff6f1e4406fab8387c701b2f07"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: objectLibraryAsOnlyStaticInput: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectLibraryTaskConstructionTests.swift"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"602648aba84edb5ceb50aec769092f425ce7ae5bab90b28343e9f8034a2b1f9b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipsDocumentationWhenTargetHasPlusPlusHeader: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectiveCSymbolExtractorTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"85089030ada2330ed59b00a73b310f9c91717ce5a41eddc26af71d5e8098929f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: documentationWithoutHeaderMembership: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectiveCSymbolExtractorTests.swift"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"509e568efd07bcb110f02bcf30ad07362ac741c9fec0d8876c0e0fba6c89e7ec"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dependencyModuleMapsArePassedToExtractAPI: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ObjectiveCSymbolExtractorTests.swift"},"region":{"startLine":587}}}],"partialFingerprints":{"codehealthFindingId/v1":"39cf3ca39c065cd9c5e0b426eb2c3f95b8d449ae37b6959d22684891b0be4ce9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: onDemandResourcesBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/OnDemandResourcesTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"52a9992cb098fdeb552cd6cee7f150713c58a187af43fcee9870bcee653b34c0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unsafeFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":375}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7608f98937e50046c9ec51f7f1c512cf26869586b9094e80805cf4a0d2837e1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: bundleLoader: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":451}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d9ff6988a2135630c6cb0e88a24c3dea73bb3b51204d84035f7233340984f72"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: invalidDeploymentTargets: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":539}}}],"partialFingerprints":{"codehealthFindingId/v1":"44d86c0acc7142671782343970b53973aef278642a493f42a5ff16c7d2106d33"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkageGraphHasAllLevelTargets: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":770}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a99a27612e9f3d49d3ec81901d35cc308a3dcf1337e4d989c84a70386401f23"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: resourceEmbedInCodeGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":904}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0dc44d31fbfad4f2d4935745f513f34b558449589b4b30f04667758710630aa"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageResourceBundleEmbedding: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":1158}}}],"partialFingerprints":{"codehealthFindingId/v1":"42899ca8a560915d533eebb480f36945e927ac7ba574e8695ef133364731d508"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageResourceCoreData: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PackageProductConstructionTests.swift"},"region":{"startLine":1252}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfdc610ee9af6ff5346fe9e4e6cc76363f8ddd1b5181092e31a5941abf8937ab"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_macCatalyst: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"54ffc17d68cb518d1d929b3efd2d129edad948cb0ece543d3b677e628f65a78a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_macOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7f9180393c1fa81498151b660b80e0378c21f9df81e67f1838e9bdbecda91ba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_iOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b9a1d3aa68e21b11595349414e7552adab92793e9faeddef43b48333086e519"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_tvOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"47946d99cb389bc9e162e3751cf1ba71b85611e71e79947a35a527fb1560a689"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_watchOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"6656c4fabc30f664d9588370662cc2de62498b40c5c9f734435bb9c3694c3410"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_DriverKit: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"49d7eb41747e7a60474c1296ac3cf4a4d40959635f535ebe6114f41974388152"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: platformFiltering_Linux: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformFilteringTaskConstructionTests.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"d87eb458fa1fcdf878071d356e53cb2a550a062667d06672a980b3b66845f300"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: iOSAppWithVariant: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformTaskConstructionTests.swift"},"region":{"startLine":388}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e8ed48b54f51cdb7e96e3932c5d3c60e98909f572bd78755b9b0bddc8c08346"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformTaskConstructionTests.swift"},"region":{"startLine":651}}}],"partialFingerprints":{"codehealthFindingId/v1":"84d338c6e33faf21cce677753af685acd2a4ead31d9d7300ba6dad30cfd283b0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macCatalystSearchPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformTaskConstructionTests.swift"},"region":{"startLine":835}}}],"partialFingerprints":{"codehealthFindingId/v1":"f34bb22a24f722df2488f14d3ec28b4427ab91666ddf666953efe7b652586bc6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: macOSMacCatalystCoexistence: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PlatformTaskConstructionTests.swift"},"region":{"startLine":942}}}],"partialFingerprints":{"codehealthFindingId/v1":"50db5041d5a69fb7bd6057b9ba19f5e211efadd60288b88741eddf30f7e3a227"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: setOwnerGroupAndModeWithVariants: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PostprocessingTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ee56c4311cda017b07434506d175f8df1c34fb5f74ecc260cf46f516f07b9dc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: registerExecutionPolicyExceptionSkippedOnNonDarwinPlatforms: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PostprocessingTaskConstructionTests.swift"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f57db447f818c1cd46887b024cc145c106e6ac1758ea0e907114cfd98628760"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyProductDefinition: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PostprocessingTaskConstructionTests.swift"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbd63f433b4c3a25507f361e5db6037f67a4ad1af9f8558f54c4f6cc74cec110"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prebuiltsAreHostOnly: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PrebuiltsTaskConstructionTests.swift"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"2aacf187557da0ab6a5b26bcdf8968c355936f7144290ce0357093f75d366753"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prebuiltsNotUsedWhenCrossCompiling: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PrebuiltsTaskConstructionTests.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c510567433e2e436801dbf6146421e444e84e7ff40918bd65a4ee4c3dfe2869"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prebuiltsUsedForCrossCompiledMacros: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PrebuiltsTaskConstructionTests.swift"},"region":{"startLine":231}}}],"partialFingerprints":{"codehealthFindingId/v1":"de97c6bf5fae21d57f7f85d97841e3b66dab59a84673377c0ba0df1ebaa17da9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: app: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5ce338671efc1d5d84dff55b0ffb5f4dd0117153a44a744cb9c5e87fe8b7091"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: previewsDylibModeSimulatorEntitlements: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":308}}}],"partialFingerprints":{"codehealthFindingId/v1":"631eb636dde9783b76a3e041b772675409c825cae3c36075f692cbde70579170"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unitTestHostGetsPreviewsDylibLinkedAsLibraryWhenPresent: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":365}}}],"partialFingerprints":{"codehealthFindingId/v1":"af2b4ce95c09750ccc333c8945134b45b13020b42003b47303d1ec140642b566"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unitTestHostWithoutBundleLoaderDoesNotGetPreviewsDylibLinkedAsLibrary: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":472}}}],"partialFingerprints":{"codehealthFindingId/v1":"cafc4faed2ede6fb91f4645982930771f88549cf413a5fb143a806f76e167982"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ldClientNameBuildSettingWithNoDebugDylib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":574}}}],"partialFingerprints":{"codehealthFindingId/v1":"433482d6c3df269e5d75d3f0f9811f3778b965b9806a7861591e4e8f201aef46"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xOJITLdClientNamePropagatedAsInstallNameToPreviewsDylib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":646}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bff78bbfd182f964dcf6dd70800146066c394a1c22c6c648f0515eb3880c943"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: XOJITBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":750}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6381b81af84317e46c77eb6db3c84180f43eaaf049e66f3765c082040faf4a1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: XOJITEmbeddedInfoPlist: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":942}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f923cd4bf5c1ac41bb47a537b12f66f4d9dfa69a315d5c6194f8c925cb30a40"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: XOJITOtherLDFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":1031}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ea42f102a318b430824659100d2de889d42971623007500f752420a03b5a221"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: previewsDylibStubExecutorDependsOnDebugDylib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":1236}}}],"partialFingerprints":{"codehealthFindingId/v1":"44f6a6227a68ac27b3006f57551e96736e587409816a72c5c96e235ca08b3d2a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: previewsDylibStubExecutorDependsOnDebugDylibMultiArch: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/PreviewsTaskConstructionTests.swift"},"region":{"startLine":1315}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9597d6f809c86a68c1307e5beec9ed5f3b581aee8605773d77a4304ba4f321b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: readOnlySettings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ReadOnlySettingsTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"a54c5216d0a1dbe15926aab080835da5aabb85208d86d34e48a8a630b1e317b4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: realityAssets: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/RealityAssetsTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccae9e1c419130c4a6ca00460969a2234559663d1ee203195602421767e1052d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogTool: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"583c2a5dfaf52ef81a977949a8bde21f45bd8370527b46fab434fe6021ebfb2f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogTool_tvOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6ac14b7e41ab7661c1f8254b62531278e202fa57842a5771ecf91927938035d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assetCatalogToolResourceOverrides: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"9199983c9ede5bf1341520821f3cf70bc16177e2942cdb6c83fdd2a81fff91bf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"63698553826e3c4a089d3535424cc013b228a883c84eb242aa486c208111483d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderStoryboardPostprocessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"876bee6647aabe1a4801cbf377659a97715e33f61e0278ce5d6161de40ee2d01"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers_MultiVariant: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":738}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3e9e5dafffd148a34416557d44968af9f5ad28bce26a255419d893b7d4d8d6a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers_BaseLocalization: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":883}}}],"partialFingerprints":{"codehealthFindingId/v1":"c64e2d9b1ec7cf14ff662d83026e833396ee77712a8008a15fef122372d3cd94"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers_FullLocalization: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1022}}}],"partialFingerprints":{"codehealthFindingId/v1":"63283f308d9d511246e0b9e40ebc91b8197ac06c2132c6eed90652a06e8763e9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers_LegacyLocalization: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1248}}}],"partialFingerprints":{"codehealthFindingId/v1":"f635630df7ce3f6c7fbbbcf77b48fb5086d535eed704362ec2211a7254c191d1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: preprocessedLocalizedStringsFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1418}}}],"partialFingerprints":{"codehealthFindingId/v1":"4afa79059af395dec2044a3a4cbdba0c82e7e715c30fde6dd60388b3a7f891c9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderDeviceSpecificProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1524}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb250cc84ea6807e8b085bd51780aac4c23b884688ecfdd88f7e1c91b6867fe0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: resourceProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1676}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b70dde8d2817a0aaa48f4e7924ca7c43f34e9fc5a79cd8128ee544d01a91f35"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFilesProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1741}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f620d6050226b25a67ceac5afe4cd7fa4e9eb4eaed6c70df15c32d449a3e677"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyLocalizedFilesProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1806}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1f1106990fd030c51547c7bf515e4456b28f7ea6705f0225925a57e2b832905"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyLocalizedFilesWithKnownLocalizationsFilter: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1852}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e2802b055e0c2945598ada88bd6585493e36a57788c6974391d591f0252bf5c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyLocalizedFilesWithBuildRulesAndKnownLocalizationsFilter: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":1898}}}],"partialFingerprints":{"codehealthFindingId/v1":"866089a1832b3062ddc5d82bec6450a36bf0887dbdb443d8a73e54682070f582"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dSYMGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2045}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8b51cf286e7dee744e92b78c80791b394060568e58a1897e8a945587d691d79"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyHeaderRemoval: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2092}}}],"partialFingerprints":{"codehealthFindingId/v1":"322def1ff8b3fcf5f0a0a8361568aa5890d37bb22bc06df62300b6e29302cb77"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sourcesImageCombining: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2333}}}],"partialFingerprints":{"codehealthFindingId/v1":"8784037d783819a1f57ab9f2757f3462443cc45a1e4953a214573ed8618833a7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleAssetCatalogs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2375}}}],"partialFingerprints":{"codehealthFindingId/v1":"fee5b763faba5a1875ee2d5533468d3d6b672b877766df7e933bbcce6e60c95b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleAssetCatalogsInSourcesPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2418}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e0b3f820b672418e92b0302e1987ea68a3a67bf145fcf1da0dc1ba6679020e4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sceneKitDAEProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2464}}}],"partialFingerprints":{"codehealthFindingId/v1":"85bad89b28462d985a35b074f73ee21e5b9a26c0d72c58b639cd41de88f29f2f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dtraceProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2512}}}],"partialFingerprints":{"codehealthFindingId/v1":"e51829d7c15ee00a3c252752dff3a267adfd14b9fd73bdf16539ad5ad8c4806c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: variantGroupResourceCopying: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2552}}}],"partialFingerprints":{"codehealthFindingId/v1":"c29ffcd5b169c968ac415306a907904236d401e3b07914c6aa4a1cfbed144dac"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFilesIntoModulesSymLink: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2605}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a1c3ac4b708c6d4098217d431438fa73fde003e1bf5369afb9d13aa62307539"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appleScriptProcessing: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2653}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbd0b8ae02d123777ed4553b6152f5b006b9c0c04768b4a85e4630ec0e54266d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: appleScriptBuildPhaseDeprecation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2702}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fdc023e359175361e7c73ea845777e49a95fd8b6d41b5843003d7acfe03905d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warningsOnEmptyArchs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2782}}}],"partialFingerprints":{"codehealthFindingId/v1":"7937d3f6a92954e67d45f1bb97cc524a31422323f7cb6a4783b9d068209d9802"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: alternateProducersOfProductStructure: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":3032}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d9fc972352a7abcbeb39c543e107270349c4949b8ecd44e888c6eca94e8607d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers_LegacyLocalization_WithKnownLocalizationsFilter: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":3076}}}],"partialFingerprints":{"codehealthFindingId/v1":"0aaf043d573552bbe73baacee75ad42483534d17ab25d117f4f139cf9842815d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: interfaceBuilderCompilers_FullLocalization_WithKnownLocalizationsFilter: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":3150}}}],"partialFingerprints":{"codehealthFindingId/v1":"8929868a60ddcb03f40ee0df829d6f5544d240fd05333a70a37249a05e182787"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: variantGroupResourceCopyingWithKnownLocalizationsFilter: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":3223}}}],"partialFingerprints":{"codehealthFindingId/v1":"174fde6570258462675979574b02646bb58a207057ac1fdf038d45cc39cecd6f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyResourceRuleSkipsBuildRules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":3289}}}],"partialFingerprints":{"codehealthFindingId/v1":"17397a72684fc319d6b8c449a01529c8448fc45937c772bd6916b0967a85b6c7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDeploymentTargetPruning_macOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d825e25b8c2aca0bd77df11c2d25a8286267a2f306150f9bbfd212c574a62c4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDeploymentTargetPruning_iOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8db34ba35d90b4eeeabd8dd690b08fd1b3f6a08bc18576dbd72bc076fef7abc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDeploymentTargetPruning_tvOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4c8c893f750049bde114094c810813fa35ad83086d6497441e7dbf141add470"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDeploymentTargetPruning_watchOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f7856c8aa4ffbb61e268365a77bdfa27996dbc26df200842e2f966b20bc8f5c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDeploymentTargetPruning_visionOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"96ea0082e610f696a8eb47f51247aba2acc779ecf319da21638129514827ab5c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDeploymentTargetPruning_DriverKit: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb33cfc3f57fe8948d04f8b20f451a9f37c0e21fd71e2acccb2f44c852e67900"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: shellScriptDependencyAnalysisNoOutputsWarning: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ShellScriptTaskConstructionTests.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc6e8d95dfbc4c99acdc36464e3aeafcdde6e73a64c4b003cbfc62e08d3b1799"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicSignatureCollection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SignatureCollectionTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"005a976e62eb0ed3d4dd6c72e6da66d0f2560d515803fdda9aabd7e0d6814211"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAPIBaselineGenerationClangImporterConfiguration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftABICheckerTaskConstructionTests.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"70f191b9c708d236e59fe1dd3ebaf1d93ef3c4dc7c264562c334f8044155825f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftABIBaselineGenerationModes: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftABICheckerTaskConstructionTests.swift"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"25e439c1c29f411ffa13f2d0e3650a4860ee167bf464acecc863a8bc35e8b370"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftABICheckerModes: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftABICheckerTaskConstructionTests.swift"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"046c750e696c3e159fed46d29a32c566aac8e65133e6a86ed788f2ebf5585874"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftABICheckerTaskSequence: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftABICheckerTaskConstructionTests.swift"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef5d9416a08fa35fba01d1ccf951a389c9a29936e4b8984c3990903c6c58c5ab"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftABICheckerDriverNoBaseline: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftABICheckerTaskConstructionTests.swift"},"region":{"startLine":423}}}],"partialFingerprints":{"codehealthFindingId/v1":"deac19a7608652772ba5acacbcdb12eeddfc70e43f2d4f2e72934013dce729c0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsDynamicLibraryDebugBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"79f29a3c9ad3a60b0bb431d6aa71323b9400b846957f8a1a2e33890c05d43739"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsDynamicLibraryReleaseBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ec308a68411e134e1fa0fec84bc4aeb6ba6398b91e1a83c0f1ce351fb072320"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsStaticLibraryDebugBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd9e20a640f1ffe0dd410b80613438aae550cb02d857fbfe1624e0c687ae7b0e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsStaticLibraryReleaseBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"414a2e7d0948cc5349bc52a64433f5a34f8f204f086366a5aceda08c28ea2623"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsFrameworkDebugBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cd507b89aad64eaae41d8b5171d872bcf61554fcb3297f0b26490a8280b0b6e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleOnlyArchsFrameworkReleaseBuild: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"a45699251810ab5d12d5de3fe02a790290ed7c0103de9dd9e154d90d18bcc2af"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overloadedArchDeploymentTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7566c0df374c4fef9a8e053653f5f4d39103922f58487f2f7490c3ed9a2c210"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: test32BitMacCatalystPrimaryVariantNoop: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9bcd9c3fb3d5fadfa867dffa1be2ab50f30f726d94790e99713375ddf2c9c67"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noSwiftModuleOnlyRuleScriptExecutionTasksGenerated: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"95a248778b8f046a75ced17630fc0a7bab74be6b7afd5f89f2b8aa61436c6031"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInBundleResourcesPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"aff2b7b5dc3eb81b7a3445b575af344082d2ef149e917d60317ffb7ce9a5bd80"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_preSwiftOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"9afc10d006e3301f4b453372783046ee30d9a484a740c3795c6b21450e81460c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_postSwiftOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"db44d86854e7ebba8574b1803584d3a397ab0d706d5471a90a7c85b9c9b79812"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_postSwiftSpan: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"80c42b1dea21995509cd911a771d64593dbc5e7d74558739a20dbecdd7df57e1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_preSwiftOSDeploymentTarget_postSwiftOSTargetDevice: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d8f734c30f6f0bad9162e27345412598c51bf5cb1164764991205000ac4d381"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_preSwiftOSDeploymentTarget_postSwiftOSTargetDevice_mixedPlatform: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"95c4defc3366343994fda0cd8bf4773ab055fa5a0c8a16be3b286d942ba0d852"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_postSwiftOSDeploymentTarget_preSwiftConcurrencySupportedNatively: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ab71b435f90a2b8428330dadbaa65abacdd9f7bd6d3f49733efd218fc35227d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftAppBasics_postSwiftOSDeploymentTarget_preSwiftConcurrencySupportedNatively_DisallowRpathInjection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"91375ae218ddd706a57b3ba5dcc1dc0e6aa4f62d797da653c189fa7fcaf4b521"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftMinimumSupportedSimulatorDeviceFallback: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":565}}}],"partialFingerprints":{"codehealthFindingId/v1":"27a55849975b32f8c903b17afdae6bd09695d855b5faac5143b6dca4968ad65a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleCacheFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1237}}}],"partialFingerprints":{"codehealthFindingId/v1":"f60a3d6b10c3483a52ca7fbb9159383a34106bd7d19af8a12ba5d64512f3f56b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftLTO: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1303}}}],"partialFingerprints":{"codehealthFindingId/v1":"60fe6e759bd71f2f0f63be6a1f704cd2378f832d586b1ec5aef79a5ba47bf32a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInterfaceVerificationFollowsMergeHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1500}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb43ce6c5a295959caee24dd76858a0d73177916e1feedd877ef5d9787deb600"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInterfaceVerificationWithoutMergeHeaders: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1511}}}],"partialFingerprints":{"codehealthFindingId/v1":"737de669322191bb35228604631ab415c1d5477bf8ab7fe4c73cba57e2b132e6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInterfaceVerificationNotSkippedWithInstalledHeader: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1522}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e3cc843b76b51c4e8c0ea30d1251691cdd4049b2c2d6aff794b9309686caa3b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftInterfaceVerificationSkippedByDefault: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1534}}}],"partialFingerprints":{"codehealthFindingId/v1":"7644818e8bae3474db8c7385cc4897c1037c5193d6e4a69e09d3de0d75dd2929"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleArchs_iOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1546}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbb2b9a608b5bd32c790556fc7785f9052569f853f70a1b677e46f13e47cb813"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleArchs_watchOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1554}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e7631894685b43d8d1f61670c6275a28460c29eee2e8d9ba5c8bcf28be10eec"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleAndExplicitModuleMap: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1573}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf8c0dd8ac8bda0fbcb2696e267d817f7e3c6723206477255bc3a8f863bc9dd9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cXXInteropDisablesExplicitModules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1634}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ef784e2cf532478639dc3d8b6daf204eeb93368dad8008d2d2fe911225ab197"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swift4DisablesExplicitModules: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1756}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a0af661ce33c90106b385516ce6116457bf3ff792d29935eedf51ceea3e3693"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: languageModeOverriddenByOtherSwiftFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1836}}}],"partialFingerprints":{"codehealthFindingId/v1":"b582b0e0a2e431cf0920cd8b12be17b0a7f2c11121b5af419ded0d734c38ec8e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModuleNotCopiedWhenAskedNotTo: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1894}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc7eeca384a575b1ce66fc3f5b027e639301d2f4065b041d5535ff606d25a960"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftBridgingHeader: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":1949}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e11b1a558e0d444fa85b4269c69e1e1553bdc816ea34780ec84c5acb35897ca"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftBridgingHeaderPathNormalized: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2013}}}],"partialFingerprints":{"codehealthFindingId/v1":"0737e5f94c6bcda58e5c40b3b3079fb44cd7eba7a03ae01aed4ca27295cee42f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftObjectiveCHeaderInstallation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2073}}}],"partialFingerprints":{"codehealthFindingId/v1":"5abf6630368b34d35832870bceca6a1ee6c2d157e8be163a336b3a312923ccc9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: autolinkingFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2337}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc8f3d5fdee9f8cbfaed8cafa2d751b2bc1665385f582d0fa7552bde9c980985"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installAPISetting: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2411}}}],"partialFingerprints":{"codehealthFindingId/v1":"b80558b63e398ba8cb1d388917ec14dc57d18b75b6c5b0ae0b317b21e8eb72c3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: emptySwiftVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2503}}}],"partialFingerprints":{"codehealthFindingId/v1":"29715d412b346bd4cb41b00fed9fa55d8b3c1c7b35e572b62c5c1a4eed430d29"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unsupportedSwiftVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2511}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0b57723623e36588e186c00073548026cfffaaf765de57c03da3853dc3aefbb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unparseableSwiftVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2519}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ad5f7b5ad25659ea6e599f7cc365dc196ec604e9558e7926707a320b41e3bd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: minorSwiftVersions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2527}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b00eda38530a9b3b2f9c35605b79b2c578788363de162d0d2ec63d9d83051ca"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftEnableDefaultSearchPathsInHeaderSearchPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2780}}}],"partialFingerprints":{"codehealthFindingId/v1":"feb09c3287a08cccad5d059738d698522a5653762be0d97f486c50a1d91b08cf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftDisabledHeadermaps: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":2833}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a382779c5b62e1fd0b1c40a885bf5c5e46ac46e7b494ac0f7743038c42f5464"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: emptySwiftFileListUserDefaultOn: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3083}}}],"partialFingerprints":{"codehealthFindingId/v1":"d739abd9412d7e4c320a7be8ab8c5b36fa1baa2a161c0a48f07728aff538f687"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: emptySwiftFileListUserDefaultOff: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3125}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a8384f91d428c06fe3eac7c7033efdf2a237f5e5e31db23a463e5a49fe55d0c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftLinkerSearchPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3224}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0162b63365ddd8c1e3c1c2e76896819218ca8a92887841b3ffee9bc0192804d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftHeaderTool: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3327}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3fdaa173ec56eaf7c934c0b13f735d0af7f5ad8c2792798a3fdc0bb64d87fbf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftPerFileFlags: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3383}}}],"partialFingerprints":{"codehealthFindingId/v1":"4efe3bf32f40a533c48b316bcd7fd165ee04f4401f7202eaad0aa1bf77e4a1e7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driver_enabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3422}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb618492132ee9f378eb247faa760142ebf97199f8c90b5fb2ad2a810bb5b3b4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: driver_disabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3462}}}],"partialFingerprints":{"codehealthFindingId/v1":"a67348cd754ea323af5e26dc4ef3ab50903923307cf1d56287cf44ec771cb09b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: colorDiagnostics_enabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3503}}}],"partialFingerprints":{"codehealthFindingId/v1":"08e3d1fb221ab11e5dfec4f21f3e96e428342d733e0f1c04bd47fdd1441fdef5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: colorDiagnostics_disabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3545}}}],"partialFingerprints":{"codehealthFindingId/v1":"0555a85ea8f1ec04fea7c40a34290b19975f787413c30bbf3c3427666ca24b93"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: eagerCompilation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3587}}}],"partialFingerprints":{"codehealthFindingId/v1":"a22574ffe2456365decf4e9ad8ccc8a9f195a5cbeae08e947afedc07ed80cd7b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: tBDOutput: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3641}}}],"partialFingerprints":{"codehealthFindingId/v1":"16718757373cbc02ce02149b0d9f48499111f9121147acb403820b9067d94f70"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: accessNotes: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3729}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64f24d3a08d148445e7117bb673945022a1a32427247e35a73c18af51624e0d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: enableBareSlashRegexLiterals: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3799}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0db6eb3228c90464516cacdcec93fc2b75186b2010b05ab5c2539a3e98d58d0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: strictConcurrencyFlag: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3866}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d083dce26ffb5a77d36b00ea6db735a38f609f7fbe33f5432106a94fc051565"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultIsolationFlag: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":3979}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3c0019ad2b9319400d915d25e37347cac344e9edfca6bcd8d54cdd836f8e6c4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: libraryLevel: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4068}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bfee9f3f832139504bcc10f6f045449af2db51708f2d90dee8245aa66ad6f20"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleBasic: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4197}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdeb0c337a755b2bbd471ed5c33f6a6b11afe070e3ff0664dda742dcfac51a06"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleTransitive: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4261}}}],"partialFingerprints":{"codehealthFindingId/v1":"c203e32ab5dd0f5232b52725e8c4cf908b6c42f487668033eab140b1fc038b02"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleAlphabeticalOrder: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4340}}}],"partialFingerprints":{"codehealthFindingId/v1":"264dbbec9fb36bf71f8673aaa0ebb91051eec4965cdad562814c3324dc2612fe"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleCrossProject: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4424}}}],"partialFingerprints":{"codehealthFindingId/v1":"5959b044ae54603bc775757e621b93bee53a4ae58bb77552098b7599b71c484b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleSrcRootCondition: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4496}}}],"partialFingerprints":{"codehealthFindingId/v1":"563e7be1015f0ad0dcce7d2b77731cdba0912af858ba2caf0940aac93cb55aa9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleAutoGenerated: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4561}}}],"partialFingerprints":{"codehealthFindingId/v1":"254d5fc9052f4d06bc9d12f4d787807008c22961bc50a21189244676b5cfe0d0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleNeitherCondition: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4623}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dea792cabc6217d49b6222269b6a22721fd0010bd333d1404ebd03b9c25c415"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ipiClangModuleSymlink: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4688}}}],"partialFingerprints":{"codehealthFindingId/v1":"b21376559d239993afa4ebe28984f37fd4b21fbbf987ec250ad9078ef48b4d4e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: autolinkExtract: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4756}}}],"partialFingerprints":{"codehealthFindingId/v1":"d82b748ae29c4e25cfc09556466caaa0a0e59f0489285afa93ea4120e21aead5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linuxFallbackSystemToolchainDoesNotPassSDKOrSysrootArg: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4834}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6d82cc8b9685b1683ee1fe339ddb0847ba91f8a2c73efa3e292c2198adae1b9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: validateClangModulesOnce: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4917}}}],"partialFingerprints":{"codehealthFindingId/v1":"00e4781d034c60fdf9d33a6dbc97db836d2d826d1cdbe0b7512643fddff842d6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: skipABIDescriptorInstall: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":4968}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8edeb33339851c4ca675a35a50c62fbe5d086f906d7de36dc8fc50f850e7900"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: userModuleVersion: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5072}}}],"partialFingerprints":{"codehealthFindingId/v1":"e13e2eaec2582d4065db60858c92948c664e7e5bcb50af1f6b95ecd05c457aac"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftTakesCxxFlagsIfCxxInteropEnabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5137}}}],"partialFingerprints":{"codehealthFindingId/v1":"37f369a7c5ca7bb93910f275c117d945085983e850f89c779d033472a3ccfd29"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: enableHardeningInSwift: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5205}}}],"partialFingerprints":{"codehealthFindingId/v1":"652324c45325d74b9dc8923a08f4c7ab6ade493833fa1a9d4106ae4c5aebcbb0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cxxInteropLinkerArgGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5301}}}],"partialFingerprints":{"codehealthFindingId/v1":"98d79ba52fae3afdb16e7d531a36f7383c970e35242261081624aeffb05038fd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: upcomingFeatures: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5354}}}],"partialFingerprints":{"codehealthFindingId/v1":"4860a21ecdd5236695137b2a94a04b9a10e388c75b2ebf55d095e7e4c4633371"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftDisableParseAsLibrarySettings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5404}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e969a790303767c7f489bd8e85620cb0826a147e5a7ad0d164a452da8b8f6bb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftcDisableSandboxSetting: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5462}}}],"partialFingerprints":{"codehealthFindingId/v1":"052a62c095e587fa8021dd81135686af743c6204f8a269f244d4be9e2d1dc343"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: layoutStringValueWitnesses: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5544}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e2947f94097113acd356f2dcdf46085c63c306945fa965053866d933ff616d1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: nonConformantPathsCauseDiagnostics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5598}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab7c6e7ddc101ff135af78fef1f553c2532453864222d496d177490b84a9cf11"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warningAsWarningsGroups: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5641}}}],"partialFingerprints":{"codehealthFindingId/v1":"7976c6c5994236fb00671aae84451644ea9dcf69817b79ab2edd553b06256863"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: registeredModuleDependencies: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5686}}}],"partialFingerprints":{"codehealthFindingId/v1":"493225b13a5e39362f9f896f96d6c00f54038a5349fb141fe3a3ec63f5295857"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warningAsErrorsGroups: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5731}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ddc1aca70f1b9507c61058b697cd870e32c16a58e2c25f3d84bd1a837e6e1b5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptions: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5776}}}],"partialFingerprints":{"codehealthFindingId/v1":"0626c5bcefe1e9fdab1ada5ed96e30da69ab5556919979c47ca0991acbdfc963"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: statsOutputDir: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5832}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a1030c44ad2a6784460be35e1d733679d0ae3d468b300ed8fc7f91be0138c87"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: indexOptionsNotAddedIfIndexingIsDisabled: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":5881}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d133f10d341dde37377c0e57271e61da6976a9eabf766a7d5a5552c17c3425c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: embeddedSwiftEnablesWMO: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/SwiftTaskConstructionTests.swift"},"region":{"startLine":6467}}}],"partialFingerprints":{"codehealthFindingId/v1":"242fe797709f7c3ce8fec25f07a18cf21cce1a2864562b5d50ed699e313a0604"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: extensionTargetBasics: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":1921}}}],"partialFingerprints":{"codehealthFindingId/v1":"2be7ea31477b6bbd8354b1c37c3481e3b2b1e15ef7fc6494ed4c58959fb6907f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: emptySourcesTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2172}}}],"partialFingerprints":{"codehealthFindingId/v1":"3748ba24cf89277cac16180d1a16e40a0cc7fb4cbe742235c57f967f33b0d928"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyFilesOnlyOnDeploymentTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2211}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5f5a16125c8950ab067d0d5b2a90ef2a862cf70991e9761662f259c1ac05f28"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: externalBuildTargetDependencies: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2476}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2d4640509c26544026be4a6562c83ddd41533774696901a22c49ed79387258b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: perArchIncludedSourceFileNames: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2586}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d6b478b547533b50f39cde34bae11cab14e15717012462744712a644396b371"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: remappedHeaderSearchPathsWithCurrentMacros: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":3148}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9954955273612937fbad45af6424668db99b84206ffdc259cb1e8444553e7a5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: remappedHeaderSearchPaths: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":3222}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ecab07cd68e4629c3bf79e5a8bbb52e1c66f6028575d3aab301922de7f6875a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: assemblyCompile: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":3740}}}],"partialFingerprints":{"codehealthFindingId/v1":"b99cea0c40eb1f4842899fc8a1ec62204af989a2e38b34cce7fb64b66849c5da"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: fileTextEncoding: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":3921}}}],"partialFingerprints":{"codehealthFindingId/v1":"9803e26c78dfa7f94ad2dfb2a77b93abbf21cc56667dcf11e3483ece486523bf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: missingTargetDependency: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":4649}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e04bb32e8cf4c1f0f1c0aad5f6692fd887db32804b9b2e2d31cb98868c2f130"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: perVariantSigning: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":4717}}}],"partialFingerprints":{"codehealthFindingId/v1":"8475e6aec0a7e8c29cd956f61822e3eb35337c3ca44e4c46be1f9b5cbb259465"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: pathNormalizationConsistency: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":4811}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a11f4aa655dfb9d73dd67365edf2dac81333c14e33ee1961c3782669035b714"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: instrumentsPackage: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5226}}}],"partialFingerprints":{"codehealthFindingId/v1":"63fdf416d545aa84c20aa57b889080d9cd7aad15881d6c977f874280d3c4731b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: packageProductsNoDuplicatedOutputs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5409}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4b262851c86a377f92cf9d2821bbb061034df9fb3e2fd7182b09fd6b7ee43c8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dynamicPackageProductGetsLinkedAndEmbedded: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5508}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd55b74ebcefee8f2382dbdf24ba406b5180edf7c9d8ac2620e7ebe4a75ee20a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: weakLinking: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5596}}}],"partialFingerprints":{"codehealthFindingId/v1":"64723bbc0c1682f27fd14f3bd4cf1a789bcdef6b6b3caa3520259bd8274984f9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: caseIndependentSourceFileNameCollision: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5815}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5eaaf222b8644a6a6add5a25258eca5d4f4620166fb68d5920b31173474b43b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: nonPrefixHeaderUse: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5879}}}],"partialFingerprints":{"codehealthFindingId/v1":"f25b6dcbb66f31f70f16e4ccdd652df5fafdba9e9b4c97f739c2e2b9a5b32ac3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: fullPathForLinkedProductsInReferencedProjects: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5918}}}],"partialFingerprints":{"codehealthFindingId/v1":"fca97747f8c345e05386576d4720e3cae61825302e903624d2c62f1b771bcf53"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: taskIdentifierCollisionErrors: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":5973}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfb965373ff30f2945e725808f5b3b5e88aefb6518e50881bfba195cb36e04dc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: prefixHeaderDerivedFileDirCollision: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":6339}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc6b13b5a413f6bab20bc142090182a7d43eb15dcd592a17ca2753b0afdbb55a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompiledHeaderDialectSupport: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":6599}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2ee1e8aa60e0df1e9d144b389814783941ddc6166611524a5b2912cea5c1c22"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: precompiledHeaderDependencyOnModuleMaps: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":6684}}}],"partialFingerprints":{"codehealthFindingId/v1":"003df325e746911afd98036826b4a2071e90753e73907e913a2010c0e5c3ffdb"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: requiresArm64Arm64e: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":6832}}}],"partialFingerprints":{"codehealthFindingId/v1":"aac58e0cb052e8b3a23dffaf0dc7d7df8135b94d25090e44a968d0f4502d2f6b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: requiresArm64watchos: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":6894}}}],"partialFingerprints":{"codehealthFindingId/v1":"1acd59c460dc57ab11c28cc533a1bc3dd2846cb7d46f64b24230ced082f56fb2"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multiArchConfigurationYieldsSingleArchBinary: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":6949}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c38f4a2a712bb5876a46497debbe8f86d46229658c766f1b7c650a3be12614d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildWarningsForFilesInImproperBuildPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7013}}}],"partialFingerprints":{"codehealthFindingId/v1":"48220478535a0a87d6eabae2cc1aab0d803aef9f0e40e66d085013abe3f1e25a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: scriptRuleWithFileListsAndErrors: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7286}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba22ead25380b41c37c4ce763158a7c90d02ce1923b759043996b1bca14cad1d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: cppHeaderInSourcesPhase: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7322}}}],"partialFingerprints":{"codehealthFindingId/v1":"c85a2e410cf73492f151da62a7ded09b608cadf257ec00b4232a39a22972932a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: codelessBundles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7521}}}],"partialFingerprints":{"codehealthFindingId/v1":"65fc9c8428ec97becac1c4e5635dba4b3666aa6f4a955c29847d2b6d50eb1160"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: copyStringsArchNeutral: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7560}}}],"partialFingerprints":{"codehealthFindingId/v1":"53c0060c098e35601923132f056c464b7b8078914fa0faa5f340099648e11da9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: intentsCodegenForInstallHeadersAndApi: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7612}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6b24dc0bef1c9a1e350f4503de73d6935add3cd7611fa530885165551cc54fc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: duplicateArchFiltering: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7722}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2e148835e7182a3eacd8040bd7d75261440f3905b002a99a9ef3513492f0c5f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: missingNamedReferences: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7766}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5d3a1c858825dffaffc7480f3f1690fe613e83daa486b34879a7a985e070e54"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_macOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7862}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf7718706feab5fec38f6e05daa6e72a2fbd79e94e3a60850f696a70b0949d80"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_macCatalyst: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7871}}}],"partialFingerprints":{"codehealthFindingId/v1":"353628c4cf1a8769389deb61d55b8322a97e54719146d2134b57c64464c20f3e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_iOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7880}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb9db42f32183fc012eba876cb99784f19a735eb383a01e3945de4ea81cdcbe7"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_tvOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7889}}}],"partialFingerprints":{"codehealthFindingId/v1":"e505993aed8a64d36f2a662508c9261ca7cee362497444f9ed8cc06e1deded94"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_watchOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7898}}}],"partialFingerprints":{"codehealthFindingId/v1":"20793f198a03e5815259ed45d9b96d60d93ef7fdeaa82070fd9a56b3da7f3ee4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_visionOS: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7907}}}],"partialFingerprints":{"codehealthFindingId/v1":"81f4b145de04ec2bf74e47801c19fd03a740d13438fdc3e06484a9b6ddca6cd5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: defaultDeploymentTargetInRange_DriverKit: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":7916}}}],"partialFingerprints":{"codehealthFindingId/v1":"9050d4f013ffb33f34b0ae6d8f04dea2070fd6341b520c90dff7fc888348a5c4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: renameInfoPlist: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8007}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2634776771778f49bb7595d4fdbbf7f2e20f73b6762340c1600dd11347498fd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: renameLocalizedInfoPlistWhenGenerated: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8055}}}],"partialFingerprints":{"codehealthFindingId/v1":"336396926da3cf32b0a57653ed7cf07ba116a0f54cdfc92be19c32b93b94cfab"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: renameLocalizedInfoPlistWhenTweakedInfoPlistName: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8098}}}],"partialFingerprints":{"codehealthFindingId/v1":"07f469c183ecbfb8a6d0abf5075e090e7655992f62ffb15873cf485b96656a3c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: renameLocalizedInfoPlistWhenDowncaseInfo: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8142}}}],"partialFingerprints":{"codehealthFindingId/v1":"97313ff8172de3338c69ef4be7418defb3a474ea83fba90132443f1018fb4fe9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: renameLocalizedInfoPlistWhenCustomName: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8186}}}],"partialFingerprints":{"codehealthFindingId/v1":"86396bb154fcdf92a63616a949db04258b65f53ef69c25d15645b9536e394c4e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: buildingWithRemarks: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8230}}}],"partialFingerprints":{"codehealthFindingId/v1":"a04713ea3e621a283f6bc1acd5ac34cca34d156f1e4ad61b6172c3e50f2fd90d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: globalAPINotes: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8726}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d61cb058a25cd849ab6a062592a561ac1ea9133afc89ce6c6f903e5336e6f2e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: ubsanHardening: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8799}}}],"partialFingerprints":{"codehealthFindingId/v1":"36c2b6236542005fa5b784005adbfeee82508c710bccb6162541b05144b8c070"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: zeroStackInit: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8884}}}],"partialFingerprints":{"codehealthFindingId/v1":"8877b9512448f88ac8cf7b89bcc2b163914e235f4a213f906fa3db224d3fdf33"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: typedMemoryOperations: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":8960}}}],"partialFingerprints":{"codehealthFindingId/v1":"97157f49be23b6f194aecde43bff29a8c2a030a1899afdb5015e0b6f669d422a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warnShadow: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9074}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c826fe27ca87801dad59216af561e4ef555a6b20aff57c29f6bb9c4fcae8570"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warnEmptyBody: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9149}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe23fc47f5ab89cbd1ddd7be455ccb570a3dc1ad01d1892954c9e5395d07f204"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: securityCompilerWarnings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9224}}}],"partialFingerprints":{"codehealthFindingId/v1":"662a18d2e255bd97328fba90ca5ea7783e387013f79f6edbc278ed0b7fd0e02d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unsafeBufferUsage: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9336}}}],"partialFingerprints":{"codehealthFindingId/v1":"c89a15b8d74967fdee4b56eb827e5de596cb9bd088589a3d4599a96ea18b02f3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: framePointerControl: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9426}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ce4f3c235329058ed37132ff04c18e672e613dd99c2fe3e3f7814623959fb7d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: crossPlatformDeadCodeStripping: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9500}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d3f0ee0de1f5660e701a5e1219b958e53b610ebd69ae26fb34442b6032398f8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: crossPlatformStripSwiftSymbols: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9558}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5d47c795faa6a6dcde3375f0594030357049f8cc6fb22ca9960b71429b3e564"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: boundsSafetyCLanguageExtension: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9613}}}],"partialFingerprints":{"codehealthFindingId/v1":"a08126d1fecb5138bd602d355ae7779d0427b6c78defb62a9a447c0f2654c310"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: libCPPLibraryHardening: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9760}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a89a26ef0a45759516674b88f9936d80ee46b8e72d2443504812d39c259d826"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: warningSuppression: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":9916}}}],"partialFingerprints":{"codehealthFindingId/v1":"84000ccd06374105401d4779a1b821ae302d95dea51e9917502dda6e58b26efd"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testEmitSarif: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":10015}}}],"partialFingerprints":{"codehealthFindingId/v1":"16f8ffe9285f6674a8a77b5d2c9b291423657bf1162c221b3af994319056796a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: linkerFinalOutputGatedOnDeploymentLocation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":10091}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0d12cf25961c445225bbd3b92fbf795ccaf98596fbc6a762ca5884875e4cf82"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicOrdering: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TaskOrderingTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b9f2f5ebf8fe1fe2fb4f01ed59e26fc49cb83fd2bcdc00d002ef6a45b46ab37"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticResourceDirectorySelection_toolsetImposesStaticStdlib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bdf7906fcff2918589c3d577601a2b15a39a963e3bcc94490ad83069a4d1709"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: staticResourceDirectorySelection_requestImposesStaticStdlib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"0202e2e0497b55e625480db3cc5ede8e27c1548b7945375f0967b19e47ef5246"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: dynamicResourceDirectorySelection: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"c084ffa22c81fe84e725741dd00e5040aeb0ffb8315dac855aa35051bca5a514"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsetCustomization: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"74258e41c7b740eba87cfc9a12b7c08910b8ba64c7db21f0e75f165cffc59397"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsetEnablingWMO: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":514}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf72d903b351b7c6eefb099697d6b7dcccfe0d34b243f6394eac1e931404ae34"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsetSwiftUseLdAppliesToAllLinkerDrivers: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":570}}}],"partialFingerprints":{"codehealthFindingId/v1":"03408c8d6512cd4318b31e8f8c1b5c3a5d3d1be5d83082afdcef8ca428435445"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: toolsetInBuildRequestOverrides: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/ToolsetTaskConstructionTests.swift"},"region":{"startLine":648}}}],"partialFingerprints":{"codehealthFindingId/v1":"bef00156c39aee39f8dde81e0c5053fa05b51c08b712c706f9fb0cc501d0fe2e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicDomainAggregation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/TrackedDomainTaskConstructionTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"34fb5e26655465a00207f5eea431caacee0b5d3c5f119af3f400052482de669b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: unitTestRunnerTarget: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/UnitTestTaskConstructionTests.swift"},"region":{"startLine":351}}}],"partialFingerprints":{"codehealthFindingId/v1":"29842248accc817d0a318aca5112d2b2a7bbcc23cbfff673892855bb5f419d10"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: wildcardExcludedSourceFileNames: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/UnsupportedBehaviorTaskConstructionTests.swift"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"26f550603709216b1686c60585b1bd9f95796318d6bc0c34c7738b3dfe561229"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: overridingProductType: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/UnsupportedBehaviorTaskConstructionTests.swift"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb698cc3004df7da73123e4350bd4b79c75f95466dbf2bde90e0998b515d199b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: watchOnlyApp: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/WatchTaskConstructionTests.swift"},"region":{"startLine":999}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed8d87c4090f8766b1dfbb465b4ff249c563b5feb4b321b762eda6a422822921"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: watchOnlyAppStubThinning: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/WatchTaskConstructionTests.swift"},"region":{"startLine":1163}}}],"partialFingerprints":{"codehealthFindingId/v1":"f84ef863051577d7d49c8383dad0c9fe02952bcb01c831a669e50bc59e27a6c1"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: watchKitSettingsBundleDeprecation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/WatchTaskConstructionTests.swift"},"region":{"startLine":1379}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba06d13c3dfe7e667958318c195fb2d66d50684490ab68e19f5f647f52c7a1c4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: watchKit2ExtensionDeprecation: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/WatchTaskConstructionTests.swift"},"region":{"startLine":1435}}}],"partialFingerprints":{"codehealthFindingId/v1":"57df4b4e4295ce481723734381f6fdf63e073a143b99fbd28b24bdc75cba18f8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: swiftModulesForArm64AndArm64_32: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/WatchTaskConstructionTests.swift"},"region":{"startLine":1489}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bddf20633764595e86a7944fb7f8fb07eb0177944cd6626aa91be8dec969071"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicXCFrameworkUsageWithTestsUsingHostBundle: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCFrameworkTaskConstructionTests.swift"},"region":{"startLine":466}}}],"partialFingerprints":{"codehealthFindingId/v1":"93557d524fff4ebb88119230cc5194dcf8633b67c4464936dd1a0ca287bc4667"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: missingXCFramework: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCFrameworkTaskConstructionTests.swift"},"region":{"startLine":1230}}}],"partialFingerprints":{"codehealthFindingId/v1":"b546beb8e09a590a453b41d0297d59b0d455d5df55720c19b8bb37294b179e09"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: symbolGenerationPlusCompile: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3315c71596972438a300888bf7edcadf7485b01ba93c15d05738ce954f2ad60"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: multipleXCStringsSymbolGenerationPlusCompile: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"673bc02d094e0ca0556f097da83dce5c7255350713c9c23be5c27c7a8c48e525"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: inCopyFilesStillNoSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"d822a156a14bbcf4002c9ffe5fedafe13a4351ae1d754bc0311ad419e9a4ea28"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: inSources: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"50cf0e7d2adfc8df6ddd6015de91fcacdedb7e6293b2b2e25a426cc4ce4eb747"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: mixedProjectWithSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"90129af6d2b6ba9395f007cd9da163f7f19e503aea39bcc16c9cae5313667d3f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: testNoSwiftSourcesNoSymbolGen: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":557}}}],"partialFingerprints":{"codehealthFindingId/v1":"c437f2f3b37970f849fe31f1a80483dca1786809dface9b164fbf40418ef4f4e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: symbolGenPlusTableOverlap: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":647}}}],"partialFingerprints":{"codehealthFindingId/v1":"67cd0b1b9ce8b813dbb633b89132c005d41baf47f7791eab50eea4d6ed155a3c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installlocNoSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":728}}}],"partialFingerprints":{"codehealthFindingId/v1":"522e5daa2115bfc044721a032e877b90ef5021c60f1369af26d1883d88f8d5a0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installlocCopyFileNoSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":820}}}],"partialFingerprints":{"codehealthFindingId/v1":"3792695d721d06af6f50421d724948b90e00f812aafd8178a6e13f54f0ee2673"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsInVariantGroupNoSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":903}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c4e9a96e3a3c79ebb26740bbb68182d6caf32ac792340a2ad1b02cda68659b5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: exportLocSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":986}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bfdc660318472b0eddc43f6ae942e53152c396fc57daba89d6e1a219653b339"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: disabledSymbolGeneration: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsSymbolGenTests.swift"},"region":{"startLine":1088}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cdde68983f1160219159801a4bd38899e6e89966603f416f7ddc80e993b8bb3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: withoutXCStrings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccb0eb4d3bc734f0854715677b88c5906904bcb3505fa16bd07bb51963d73c14"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: basicCompile: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"a83e1d9cdf274c32ff643a9906f608882e4071a9ab34c2e1a8a6e62cbe3c223c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: noOutputs: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2f8e954d3492cd270ae47500b1e3f00daf2c852941e6bfaffd5c964206db522"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: emptyFileAddedToMultipleTargets: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a218b4673ef113597f81f88212639051622e09d602b3dd83f7ec3ffc518b98e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: inCopyFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"4eeddd3e733233718f1775eb7c7738afe11c6d6f4a9d701076303cbd25e58613"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileMultipleXCStrings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":478}}}],"partialFingerprints":{"codehealthFindingId/v1":"6527f0cc767069fda2feb5120347d99f3e506be123f667fa8e7e8854d661fe78"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileMixedProject: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":556}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc252346c38cf69f44f54e14c8f360ced47408c7991e7166a37bc867898a8e02"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileMixedProject_WithKnownLocalizations: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":632}}}],"partialFingerprints":{"codehealthFindingId/v1":"129ba1bf6b705883f21878155b664295b3b3c9195dbfb23ed91830ed9bae43f5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileMixedProjectWithTableOverlap: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":727}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fbcab0321a7099130e9d6505f023f51e6dffdb4dfd6f0b5333f1f96270f5b08"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileWithTableOverlap: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":792}}}],"partialFingerprints":{"codehealthFindingId/v1":"76e1320393dd1b2b6265238553c773a073b735e459cedec65a31564a197a8600"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileWithSameNameTablesInSeparateTargets: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":869}}}],"partialFingerprints":{"codehealthFindingId/v1":"433bb29c774e36be81eb192071deccace812d7daf9683e8e42186701ce8642cf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileWithinLproj: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":975}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fb69714f6a17b293fde7a9b6a7687f4a5e4560ebb0bf8d508c38be0bdd6aa2e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileDuringInstallloc: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1038}}}],"partialFingerprints":{"codehealthFindingId/v1":"3398bda07d0f942962467d3876223e87ee03400c877dfe4582ce24f0440be1a8"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: compileMultipleLangsDuringInstallloc: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1129}}}],"partialFingerprints":{"codehealthFindingId/v1":"560d4539e7e4b8c15951225fe559f414ac3e27797ae27ac2df8d7672eb77562e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: installlocCopyFiles: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1226}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9dbeb8100e7544f6da74d67084ccbdfa1003444aaffa8bfc05cdb3aef29fb5b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: exportLoc: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1308}}}],"partialFingerprints":{"codehealthFindingId/v1":"90149c7c048be95d340e764993767b0a6bceff659bf9b2c52dfc2044c39036b4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: forceBuildAllStrings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9c74c20463b86cd68830fcff10748f5bb6a704f3a76e62830af56ec5400dbaf"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsInVariantGroup: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1476}}}],"partialFingerprints":{"codehealthFindingId/v1":"059c24a42a44df2e4c76fd2cc6957b918d33976cc00b0c5eb1c9904668a5451f"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsInVariantGroup_WithKnownLocalizations: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1593}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a96443ee47b0cb946dd35e6a1d2bc5ae0ab7137929a6bfa9cbaaa091e516cd4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsInVariantGroupDuringInstallloc: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1711}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d8bba57892ace4ebca774a0da3e690df8a27b7690fd51a8ee1800537c2fcdfe"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsInVariantGroupWithTableOverlap: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1858}}}],"partialFingerprints":{"codehealthFindingId/v1":"b29dd804d93e79d3c3614c6764b8b6088516a12aaa35142982c0f178867bc679"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsInVariantGroupWithOverrideNib: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1922}}}],"partialFingerprints":{"codehealthFindingId/v1":"d640736c378094133cdfea243d75d05c67501489acd3fdecb376ab37b1e86bf5"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: processLocalizableStrings: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":1987}}}],"partialFingerprints":{"codehealthFindingId/v1":"b33364ce2e90018fa5e842ea8d407752ea6f65ffae2e93724fce32160fc1887e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: sourcesPhaseKnownLocalizationsFiltering: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":2032}}}],"partialFingerprints":{"codehealthFindingId/v1":"00798a23003d0055c1b3b6e491e562130b621e2f756f5b8de68c1c0588abdeff"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: xcstringsOutputsAreSorted: No conventional assertion call was detected, and 604 of 821 tests in \u0060SWBTaskConstructionTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskConstructionTests/XCStringsTaskConstructionTests.swift"},"region":{"startLine":2139}}}],"partialFingerprints":{"codehealthFindingId/v1":"563b7fa0c55a8708508658f38e3ae9e5e03a0032ba0296b0467705ee3e13fbaf"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: bundleWithNoSources: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/BuildDescriptionTests.swift"},"region":{"startLine":537}}}],"partialFingerprints":{"codehealthFindingId/v1":"528f092466c6b88879259b0645f6be1013d33bebed2ff8d5fe385dd4d2cf81cb"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: bundleWithNoArchs: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/BuildDescriptionTests.swift"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e50448c5b2fb8e81390ccc7ec5ea46c6fb67fdc7370ff752ec0a84f6f5b369c"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: NSExceptionMinimumTLSVersionDeprecationWarning_macOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/InfoPlistProcessorTaskTests.swift"},"region":{"startLine":1818}}}],"partialFingerprints":{"codehealthFindingId/v1":"562e456ac0358ce9e86b9bc4690fd6794e03691634f44018d56c7a0a729143bb"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: NSExceptionMinimumTLSVersionDeprecationWarning_iOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/InfoPlistProcessorTaskTests.swift"},"region":{"startLine":1823}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c937900101e0c022d88b88ba85d3077da7c94d0fcaa2dd291e7c40dba82e8f4"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: NSExceptionMinimumTLSVersionDeprecationWarning_tvOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/InfoPlistProcessorTaskTests.swift"},"region":{"startLine":1828}}}],"partialFingerprints":{"codehealthFindingId/v1":"011cd269d2a85c3f858fe3568b62ce4da3d613b3fee2ed1ff59ba5347e746991"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: NSExceptionMinimumTLSVersionDeprecationWarning_watchOS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/InfoPlistProcessorTaskTests.swift"},"region":{"startLine":1833}}}],"partialFingerprints":{"codehealthFindingId/v1":"a205fcc1376ec97cfea35c609abeec92c6b8df51fd42186ae7a8abf0960600c5"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: mergingTrackedDomainsInfo_WithTopLevelAppDomains: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/InfoPlistProcessorTaskTests.swift"},"region":{"startLine":2251}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbef30f3dc89c2c05b1a22b400fea4e999f2ccb486858fc19a6bcaf3f24496e8"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: mergingTrackedDomainsInfo_WithNoTopLevelAppDomains: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBTaskExecutionTests/InfoPlistProcessorTaskTests.swift"},"region":{"startLine":2256}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8a5890cd8969b29fc2b0579cf5ec0ae1bc6d2d757443902a087c00006c3d80e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: commandLineEncodingPerformance: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilPerfTests/ArgumentSplittingPerfTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbf96e23343e3d594f482282e13cc5fce7776239afa1986b4968076ad2e7abd2"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: performance_Normalize: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilPerfTests/DependencyInfoPerfTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4208b0593b91602ca5f789be5bf97cae9b550ef77087eec81939722d0a61dcf"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: performance_Encoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilPerfTests/DependencyInfoPerfTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bee054fa6569aab67005460cc6a1a74aa6fbc6bf96be5361376d3de16a949ad"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: performance_Decoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilPerfTests/DependencyInfoPerfTests.swift"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"81638e35db2a596db38d7c759fe227f0f43b3fcf0ea781bc5e1598ce44d2cfdf"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: serializingCustomElementHierarchy_100X100X100Elements_X1: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilPerfTests/MsgPackSerializationPerfTests.swift"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed01012add6c8fb95e767654d967eb4d6b9cf09d6a9ede62cee39d5cb5e1c895"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: creationFromASCIIBuffer_X100000: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilPerfTests/StringPerfTests.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"525c4634cd794654683826468e2d27e610a36676200a842046223a90f44f064e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: LLVMCommandOutputParsingEOF: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ArgumentSplittingTests.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b63ecdfac4f548dad7cd84cbd7545b0a54a3244301e6160203a09c1abcf6469"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: LLVMCommandOutputParsingUnexpectedQuote: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ArgumentSplittingTests.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"9944abcc64bd166ccecad3ee36ecbcf00e226c9b23b436a373c15b3e8c89334a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: LLVMCommandOutputParsingUnexpectedEscape: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ArgumentSplittingTests.swift"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca81d721ac76d46f3c0237461ec08e8c00b830e951cd85ac1025fc779b53bcf6"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: LLVMCommandOutputParsingUnexpectedCharacter: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ArgumentSplittingTests.swift"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfb19eff5a9f33ecad304959bf4b4ca650bdad8549c43a806facacfb13932948"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: LLVMCommandOutputParsingUnnecessaryEscape: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ArgumentSplittingTests.swift"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb905e633f6448645d25bfdb9675b6f4c598253aa99c6392dc65537400bd8945"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: encodingErrors: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/DependencyInfoTests.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"12a62eb19297cc95485c057b39636898be0a62a7b64ce90e487e729acfa1e65d"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: decodingErrors: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/DependencyInfoTests.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"be89f47639e8c767e37ad412fef366851dfc505875c3503aa1d835b25ad0f779"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: localCopyFile: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"35712c205607a3c62831c2d18ecb54fec8469e8e48dcb1cd4bba1aa7785c47f5"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: localCopyTree: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dea0b1ef3741cbc1885be266b76701b03135fd0139f837a41f50e3b921fce97"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: removeDirectory: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":484}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec273ea4adc4c8be570023c4cafbbf1e92607c0cfb63f6595966b3c530b8ce25"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: pseudoCopyFile: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":717}}}],"partialFingerprints":{"codehealthFindingId/v1":"dde2e010f588fa18b66b3b43a6baa626a0a1d633e9d52a7f2cc4c36a32da797c"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: pseudoCopyTree: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":722}}}],"partialFingerprints":{"codehealthFindingId/v1":"21058c829196a0cd77bfe8355a8ee60891eafb4b082649daa6f3dc29b6011f2f"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: fileSignatureHonorIgnoreDeviceInodeChangesSettingPseudoFS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":1091}}}],"partialFingerprints":{"codehealthFindingId/v1":"843661ea857f5fc6a14baa0e221787bba1813faf5c475973b6f5c69192429400"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: fileSignatureHonorIgnoreDeviceInodeChangesSettingLocalFS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":1096}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c9dfc0d7657683fb37441c54aa40f91e8c24c257a171bc2dfee1c5b1ffb334e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: treeFilesSignatureHonorIgnoreDeviceInodeChangesSettingPseudoFS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":1136}}}],"partialFingerprints":{"codehealthFindingId/v1":"504519e028c1ad7bc0126a0cf03aadac24ad0b11c0b0b278ea1587a206d4635b"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: treeFilesSignatureHonorIgnoreDeviceInodeChangesSettingLocalFS: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":1141}}}],"partialFingerprints":{"codehealthFindingId/v1":"890c5cb5bfb3f8f0ac0ee981eb9c0134b6cebd20e28cba1b75c3300712a41c81"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: pseudoRemoveDirectory: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FSProxyTests.swift"},"region":{"startLine":1148}}}],"partialFingerprints":{"codehealthFindingId/v1":"44cb615fcc8f31318a3abd73e003d601405d26ee4a27112add76a98603f42c9e"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicMatch: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FnmatchTests.swift"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e6e02baa27e8f1c78c0f3e9d489c0b045cdb8080e6ba2f12bfd09b622027829"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: forwardAndBackSlashMatch: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FnmatchTests.swift"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"61a5c7763aad3994b82307f95cbc60196e356a10f0ec8f8e8db13e32545b6612"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: caseInsensitivityMatch: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FnmatchTests.swift"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b1c87069bc440986db929815f6459933a0d8472e1ef808028be04c1df4ef977"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: pathnameMatch: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/FnmatchTests.swift"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"101a80a898c84352555e77767bcf547360101090f5df74614060d58be0375ec9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: fatMachO: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/MachOTests.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e097b88240071ca06ef9d4dd4b830a13115e4a1278d0ce27a5f7de79aef3b39"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: thinMachO: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/MachOTests.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba37ef7e2c026026d950dd796a4ba1bd7cb49dcb9fdcd2acb47ffc66ec64a2fd"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: fatStaticArchive_MachO: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/MachOTests.swift"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc12880c0375e92c2117ad55204190a097ebb30342901796fb9dbdf93e6d3631"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: fatStaticArchives: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/MachOTests.swift"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6322e9cfb8288f7a20278b1026a2ed66d3a335a500435778c3caf98699418fd"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: usageParallel: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/PBXCpTests.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a85d5a38ecbc618f252c0b682ac804c66750e62f1bbc07a8d7b063d2edd9066"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: loadingDate: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/PropertyListTests.swift"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"65cae9f10e729fb8d7cfd1e77dced05974f8ca192d4572231b90e3442661a7ba"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: loadingJSONFile: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/PropertyListTests.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"8823292d11dbd86c7089284d1cc20435c9a97c4d7b0d33b0f7cb40a3b6673c46"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: responseFileRoundTripping: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ResponseFileTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"820ba52e6f223ec803d9ad533fa9c4368d27c696fbf3a6dcba199b9624f0e717"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: responseFileContentUnix: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ResponseFileTests.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"2364db906bd5ba1f4534a6a1965a2f828fb1b0d6f5b188c9bcc3a548b1e94a86"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: responseFileContentWindows: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/ResponseFileTests.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9ee89b93d84a9875e58b71076f53c9ccbd73e6eb428535befefa21a8c789244"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: errorHandling: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/TAPIFileListTests.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d7e015ce9a3b2357ffd1419a6e48d73d1864c89d59811674e38f54199550a01"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: hashableConformance: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/VersionTests.swift"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc25f22cd50e227b6045056594625e5548c1a516a5a7973cc8ffc2944ea048b0"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: idempotency: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/WaitConditionTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5a7616dd9b1ec65303debe3d9272f326b6a4019e04343ec406d2ab098d134a2"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: multipleWaiters: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/WaitConditionTests.swift"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2a296550775bbc30e04ca5ac182b38d32ea54443fd44ece1f70412a4ada7e58"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: badInput: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBUtilTests/XCBuildDataArchiveTests.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"38fc80f66d929c49e812ef3dce9c431cefac82fe3374d8c792be457169f189ec"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: wasmSwiftSDKRunDestination: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBWebAssemblyPlatformTests/SWBWebAssemblyPlatformTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fdb42d30d11594ec90c36482688d2cae0f58598ba3f1e21985d83c5c736f251"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: wasmCommonObjectUsesObjectLibraryAssembler: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBWebAssemblyPlatformTests/SWBWebAssemblyPlatformTests.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d6a139442e0a9a85d489bffd821655bf95f52c3be9744340659c0b134c134ba"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: wasmSwiftSDKDependencySpecialization: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBWebAssemblyPlatformTests/SWBWebAssemblyPlatformTests.swift"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"63e262ecda40f063697cfaf0052ae64451381eaf1628caa08b21f0d0900a8357"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: windowsLibcFlags: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBWindowsPlatformTests/WindowsTaskConstructionTests.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"4faa54abfe21f5720a23b65a9b33ed58b9c10b3b8beeeeb3f41358cbd924c46b"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_NoHeaders_T1F10_X100: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"6962f53d07494898f8637fac7991b8097250475b38722ae6b7983bccc9ad8bb0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_NoHeaders_T1F100_X100: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a8dd1d79eed6bc2722778fd8dc1db6bf849cf3ed13280badc1dbc8bc2ae7969"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_NoHeaders_T1F1000_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"11f79aeb9ba2076fb7a9401371bdbbf71542b2af1dc9ed7d8995db0a37aaa94a"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_NoHeaders_T10F100_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"96183546b8350dd3ce978bffe456efc02777aa0538c2fbaafce48b539950ce12"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_NoHeaders_T100F10_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"197cbd60ede2cbbad7a2dfdea769881a1131961272e2e703b101db7ec989f875"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_NoHeaders_T1000F1: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"60e8521da1a11dc970fe4f5629c39fb1dc53bc92767eeced0294c51b5f7b953c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_SharedHeaders_T1F1000H1_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"29ad2eb921d1652cdf7c1d2991825eab0aaeb96a9239fd0796548b867ac9e157"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_SharedHeaders_T1F1000H10_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0673a099ae21e3d35035b4d6ef5fb01e0db0a2c336705a17a91b98d04419de3"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_SharedHeaders_T1F1000H100_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcb672c67fbd4469013b74795ba3ce620a41b72daa3a38d959535dcb2b06c1ed"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: synthetic_SeparateHeaders_T1F1000H10_X10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildOperationPerfTests.swift"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ea7ff2bece71d92cc7492d388f39481f5011d0d8a95cdfef64b8454f2d7fa6c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: isAlivePerfX10: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildServicePerfTests.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"91d628bf570a3fcd9f46fefa7ea1f42fed6c0554ad9428a84c461758c06959b0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: oneMessagePerfX10000: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildServicePerfTests.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"2773df79fefd5a4c039a600930a28fc60205e604fa932f8e926d66914d92ffd9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: oneMessageAsyncPerfX10000: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildServicePerfTests.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"4976745c4ffb5ed5c19d9d65ace4dc4eec7fad7c452e152783bbe26cc4f5b371"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: throughput_1K_Message_X10000: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildServicePerfTests.swift"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"b33c52d4be4b123fa39d8b707eabdfe3e3c6907ef236c54a9e2111f46067fc40"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: throughput_1MB_Message_X100: No conventional assertion call was detected, and 15 of 19 tests in \u0060SwiftBuildPerfTests\u0060 read the same way \u2014 so this is treated as that project\u0027s convention rather than a broken test, and it does not drag the score. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a project of runnable samples compiled as tests, where a run that does not throw is the only check. If it is the latter, these methods genuinely verify nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildPerfTests/BuildServicePerfTests.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f20ca30a5738b181e08aa678db355235ed72be9106f0daac03b2cc61cd251e8"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: appClips_MacCatalyst: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/AppClipsTests.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a23d46ccf4cb03e058d436c11fc87bdd067aa3b63802a6e32e3c4e82c9dc21b"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: appClips_MacCatalyst_Error: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/AppClipsTests.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c9a3df84f2108637949eb96d5c8f6d4a3792a8fb326319988a1d8ac591006f4"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: appClips_EnterpriseTeamError: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/AppClipsTests.swift"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"56c0952a5087e9ece819072de9335397d3b086ea8616d60a71acbff85daafdae"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: documentationBuild: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/DocumentationTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"19060fc879f363a34ea8d65a344d5ebaf949f502e01d959c12eec0659c8dcc47"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: generatePreviewInfo: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/GeneratePreviewInfoTests.swift"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"237ee6e164e3a39984a39dcc495f76642a0f1cba2536caa527995ec6accc82d4"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: generatePreviewInfoXOJIT: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/GeneratePreviewInfoTests.swift"},"region":{"startLine":288}}}],"partialFingerprints":{"codehealthFindingId/v1":"54e2ab0184d1b774a18df4251d1f69ae5e0a2a3e37cc732e807b9a1de43c6bc9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: isAlive: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ServiceTests.swift"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"c21c1de5574b83064921695a2d6b363982124ed73fa90471641883508692977a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: helpCommandLineInvocation: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ConsoleCommands/GeneralCommandsTests.swift"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"83cb65d547f56e1e43f8f15464becbb32bff1e4a1aaad2393d91bed710ba9c39"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/BuildConfigTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0ec0f702f3dbb747ea838a8d8c9e323e7a1a538e9b71cd0648927b3763e4bea"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/BuildConfigurationFilterTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"1595c47cca7af31a56fcd81b0745c3d5d5e7d82caea0a27b5ba4d1d86828400a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/BuildFileTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdbf9aef369c9fe60214b884c8e09451b994f5c5e72e80b6217538464134eb55"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/BuildPhasesTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"679ec3c89d01bae39969d43eb373c5f49639b1dc48b742065c4a0c2d619df389"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/BuildRuleTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"121193692aa3234321a18668a7efbf2a93192ee7f247be4a12733eaa234c636c"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/BuildSettingsTests.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"50e7322963ab6f1c3845dc2de6b9d2e09ec59f0cfab21a2d7b619e803871d611"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/CustomTaskTests.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"48dde221bbfc626846b53de1e154bfb28a3e583ef8c5077cd7e5b91ef23823b1"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/ImpartedBuildPropertiesTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca08508303d86942a498ea9d22c824e31794045968e0863acf6097d557ed03c5"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/PlatformFilterTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"d570a5523ac997b388c620c74d24e2b451ef018a40f518eda5d7fd8ac5dbdf28"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/ProjectTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e20bfc30ca77a316553ed000d010c92fb2092e3fcc19e7f5898732b6f3c8242"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: fileEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/ReferencesTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9af241d120a1c2bc154a1b3266040e367034db0def06b59c00ac153dff9d5e6"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: groupEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/ReferencesTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"45d8940bf1a77f5cd4de0dfe0c000531c8f042fd965fee6c586fc117e655d907"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/SandboxingOverrideTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"de92dee6dd7f7d89c5929687f274a0856bcfb40fcf03a30972d0ee8c321d1ae9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/TargetDependencyTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b74927e3e4f90921f4185943883808301615458808c004c25dfafd337225b33"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicTargetEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/TargetsTests.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"48f4f78e3eaef3a97ed733e69b874da2d51ff3823141fd768d9367564d640ea5"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: deterministicPlatformFilterEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/TargetsTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"f870bb7c150c268d641ef0a849ac106fc04cba1c3ff3c357b9eed8fac0aec75a"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: basicAggregateTargetEncoding: This method\u0027s body runs code, and no assertion call was recognised in it. Recognised by name: Assert*, *Should*/ShouldBe*, Verify, Expect, Throws, Record, Received/DidNotReceive, MustHaveHappened/MustNotHaveHappened, EnsureSuccessStatusCode and *AndEnsure* \u2014 so verification routed through a helper of your own naming, through a base-class or callback object whose members hold the assertions, or through a harness that fails by throwing under some other name, is not visible to this check and is not counted here. Read it as \u0027no assertion this check knows how to see\u0027, and if that is right, add one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SwiftBuildTests/ProjectModel/TargetsTests.swift"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e1d2c278667014219d3542eb238054c222488bff84d03d045370205e27e88e6"}},{"ruleId":"D10","level":"warning","message":{"text":"Test project verifies nothing: SWBServiceCoreTests: No conventional assertion call was detected in 1 of 1 tests in \u0060SWBServiceCoreTests\u0060 \u2014 the project as a whole, not one method. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a suite that genuinely checks nothing. If it is the latter, this project passes unconditionally and cannot fail."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBServiceCoreTests/ServiceCoreTests.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1f5a2e9b27bbe4ff2e554f0e18ad11f8e186db4041e496c24db3d4e38980de8"}},{"ruleId":"D10","level":"warning","message":{"text":"Test project verifies nothing: SWBWebAssemblyPlatformTests: No conventional assertion call was detected in 3 of 3 tests in \u0060SWBWebAssemblyPlatformTests\u0060 \u2014 the project as a whole, not one method. Two things look like this: verification that happens indirectly (an approval/verifier harness or BDD step methods), or a suite that genuinely checks nothing. If it is the latter, this project passes unconditionally and cannot fail."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Tests/SWBWebAssemblyPlatformTests/SWBWebAssemblyPlatformTests.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"819bbdc72eaca355d669b4daa88c4e23321acfc8e3c8f376ee4275cb7cea73fb"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift: Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift changed 19 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 256 in SwiftCompilerSpec.constructTasks at line 1170. 2 of those changes were fix/bug commits, and the other 17 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift\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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1170}}}],"partialFingerprints":{"codehealthFindingId/v1":"336e804c5377754503fcaf5746c3fcba62807f56c329ec7b5f2bc547ce13b633"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/Settings/Settings.swift: Sources/SWBCore/Settings/Settings.swift changed 24 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 84 in SettingsBuilder.getCommonTargetTaskOverrides at line 4374. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/Settings/Settings.swift\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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4374}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f0f5df2dabf192174d7bd0b267216e4a55e045cbdce005b14e3cf682eeea6aa"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift changed 11 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 161 in SourcesTaskProducer.generateTasks at line 840. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":840}}}],"partialFingerprints":{"codehealthFindingId/v1":"acef0441fc11760241a4314d9a05d687f851a7fed2f0bb1cc11884050c764c19"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift: Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift changed 10 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 83 in ClangCompilerSpec.constructTasks at line 1091. 1 of those changes was a fix/bug commit, and the other 9 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift\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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1091}}}],"partialFingerprints":{"codehealthFindingId/v1":"91312a9ba6076945dc50a7c2f8b86c524712d379ca0eee82cfecc3d30590f87e"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTestSupport/TestWorkspaces.swift: Sources/SWBTestSupport/TestWorkspaces.swift changed 8 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 81 in TestFile.fileType at line 171. 2 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTestSupport/TestWorkspaces.swift\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":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"55e26618c1779dbf9639b90e665feb93725cee0b39c4ce4d77509a7ff37db149"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift: Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift changed 6 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 77 in LdLinkerSpec.constructLinkerTasks at line 457. 1 of those changes was a fix/bug commit, 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift\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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"3196650b8716f735a3f3dbc03b603d3b95faaf3feefc759f976bc8d2a0069c80"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift changed 4 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 63 in FilesBasedBuildPhaseTaskProducerBase.groupAndAddTasksForFiles at line 420. 2 of those changes were fix/bug commits, and the other 2 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"140c90b6ea560c5ff3beb9875928ea2c2ecebac2bd76f1749d5239a0c32c3381"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/TargetDependencyResolver.swift: Sources/SWBCore/TargetDependencyResolver.swift changed 3 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 83 in TargetDependencyResolver.computeGraph at line 286. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/TargetDependencyResolver.swift\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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fc6ad9b2dd80bf02b0c224ffa0c2c08e3a68d807a43d697407b6efcd88cc866"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/LinkageDependencyResolver.swift: Sources/SWBCore/LinkageDependencyResolver.swift changed 6 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 40 in LinkageDependencyResolver.dependencies at line 215. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/LinkageDependencyResolver.swift\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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b50626f0c1e9e348e028eb67b0831341cccda31dfd7e67e884833aa637ce3e7"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift changed 9 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 18 in TaskProducerContext.willProduceBinary at line 764. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fdcb35bc89ff3cd424691b71984c7043ef216e785d46bdd5f342101f1a71073"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift changed 2 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 76 in CopyFilesTaskProducer.addTasksForUngroupedFile at line 204. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d4544b3d77ea364f8d426721e6d0947b38583d0686757fe91a96f3a4bce8ba6"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/XCFrameworkTaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/XCFrameworkTaskProducer.swift changed 5 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 24 in XCFrameworkTaskProducer.prepare at line 35. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/XCFrameworkTaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/XCFrameworkTaskProducer.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fc65e33df98f834e3b211e68588976af27b6dcca84cec9122fa70c0886ebd4a"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SwiftBuild/SWBBuildServer.swift: Sources/SwiftBuild/SWBBuildServer.swift changed 5 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 22 in SWBBuildServer.reportEventStream at line 419. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SwiftBuild/SWBBuildServer.swift\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":"Sources/SwiftBuild/SWBBuildServer.swift"},"region":{"startLine":419}}}],"partialFingerprints":{"codehealthFindingId/v1":"b41ad744deca499bc139adddd21a182dc7e88e4aed94a45711610786e449f418"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift: Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift changed 4 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 26 in ProcessXCFrameworkTaskAction.performTaskAction at line 24. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift\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":"Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb59d42224898173b9989ccee295d5fe90b06e90c6e38d1d0ed55644762cede6"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift changed 5 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 20 in TAPISymbolExtractorTaskProducer.generateTasks at line 29. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"2313407d56ef3943b30da2890e8e33537784c8850663a512dc65991d8ccfd112"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift: Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift changed 3 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 25 in SwiftDriverTaskAction.performTaskAction 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift\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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverTaskAction.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"f363a4291cb7d8154f3823bbbafaa08d1447712e070946d46a55c4e88e2f4146"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/ShellScript.swift: Sources/SWBCore/ShellScript.swift changed 3 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 25 in ShellScript.swift.computeScriptEnvironment at line 80. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/ShellScript.swift\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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"57c9bb068e2f967bf45341d58d314f05999a65ff8c5df85f732146f47bcd2ddd"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift: Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift changed 4 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 17 in TAPIToolSpec.constructTAPITasks 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift\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":"Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"115cd6e2116a5f872cb495f73b2ba163b21c5197f60d45825bd9214bbb80df72"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift: Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift changed 3 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 16 in ModuleVerifierTaskProducer.generateClangModuleVerifierTask at line 190. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift\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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"861ea182f997df54595464c3ffc420306a9813c825b090beb2575e46bc24b687"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift: Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift changed 2 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 24 in PrecompileClangModuleTaskAction.performTaskAction at line 130. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift\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":"Sources/SWBTaskExecution/TaskActions/PrecompileClangModuleTaskAction.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"896205ec801a0639e3d9482296dda46027f0db40011462ef4b9709adc49462a5"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: Sources/SWBUtil/PbxCp.swift: Sources/SWBUtil/PbxCp.swift changed 2 times in last 90 days, and the most complex body those changes touched has cyclomatic complexity 16 in PbxCp.swift.copyTree at line 515. 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-07-02..2026-09-30, the 90 days ending at the analysed commit. Reproduce with \u0060git log --since=\u00272026-07-02 21:56:21 \u002B01:00\u0027 --until=\u00272026-09-30 21:56:21 \u002B01:00\u0027 --full-history --no-merges -- Sources/SWBUtil/PbxCp.swift\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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba75d7f10c6af69fc4c122e4b8fd2d7df4e873a617cf3d69e964aeb651934b07"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 11 significant file(s) lose their only recent owner: Sources/SWBAndroidPlatform/AndroidSDK.swift, Sources/SWBUtil/HeavyCache.swift, Sources/SWBServiceCore/ServiceHostConnection.swift, Sources/SWBQNXPlatform/Plugin.swift, Sources/SWBApplePlatform/PluginDCLT.swift, Sources/SWBUtil/Environment.swift, Sources/SWBUtil/Promise.swift, Sources/SWBWindowsPlatform/VSInstallation.swift (\u002B3 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f455f6209bee91762ec580c2d16737db52f12342b9c567dcb4f236424ad68dba"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #2: If anonymized user #2 becomes unavailable, 7 significant file(s) lose their only recent owner: Sources/SWBUtil/Serialization.swift, Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift, Sources/SWBUtil/IndexStore.swift, Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift, Sources/SWBCore/WorkspaceSettingsCache.swift, Sources/SWBCore/BuildFileResolution.swift, Sources/SWBUtil/CollectionDifferenceExtensions.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dbd9d6b314181e8645f19d8d626ac6db81624aa745e23e875e8cac87f5236900"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #3: If anonymized user #3 becomes unavailable, 4 significant file(s) lose their only recent owner: Sources/SwiftBuildTestSupport/CoreQualificationTester.swift, Sources/SWBUtil/Version.swift, Sources/SWBApplePlatform/AppIntentsSSUTrainingCompiler.swift, Sources/SWBTestSupport/Xcode.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"abfd6f6219bf734412f7178188685b1407045cd62b4b5cb43391efa2b1b761be"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #4: If anonymized user #4 becomes unavailable, 4 significant file(s) lose their only recent owner: Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift, Sources/SWBTaskExecution/TaskActions/SwiftCachingOutputMaterializerTaskAction.swift, Sources/SWBTaskExecution/TaskActions/ClangCachingOutputMaterializerTaskAction.swift, Sources/SWBCAS/Errors.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d1c792ae1cf0a8f1802f4b4bf22d99e02e31db04bde3bf0af2864d5ed574ce65"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #5: If anonymized user #5 becomes unavailable, 3 significant file(s) lose their only recent owner: Sources/SWBCore/XCFramework.swift, Sources/SWBTaskExecution/TaskActions/ProcessXCFrameworkTaskAction.swift, Sources/SWBCore/SpecImplementations/Tools/ProcessXCFrameworkLibrary.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0a43e6c4166e723f2c5e5f1c0a0a894eb75c9a43208ba9119760d8bac1528a0c"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #6: If anonymized user #6 becomes unavailable, 3 significant file(s) lose their only recent owner: Sources/SWBCore/ProjectModel/Reference.swift, Sources/SWBTaskConstruction/DiagnosticSupport.swift, Sources/SWBUtil/AsyncCache.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8c05652b5b8aca8e6f2d6e0ab172378bba3809eec244fdb2f025f169748c388e"}},{"ruleId":"D16","level":"note","message":{"text":"Further sole-owners (lower concentration): 8 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 (43 single-owned of 496 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; 496 of the 658 production source files in this repository met that bar). They are anonymized user #7 (2 file(s)), anonymized user #8 (2 file(s)), anonymized user #9 (1 file(s)), anonymized user #10 (1 file(s)), anonymized user #11 (1 file(s)), anonymized user #12 (1 file(s)) (\u002B2 more) \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":"HackComment: // HACK: The place where this is used is challenging to convert to async, and effectiveInstallation() will be called before it is. \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":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"68b594fca74333db3224da3ba16cec3c5953f5be868bbd90b9e32fc39316e49c"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: All information in swift-toolset.json for Android Swift SDKs is redundant. \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":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f59330b01771ac94c35e9c7948b3b2de84de9d5fccc9cc71a16286bd01d6e59"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this configurable in a better way so we don\u0027t need to push build settings at the SDK definition level \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":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"78a4c89ae13f82f3bbd352a4a37521c4c0851e106614ddeba6cbb38abacee93b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this configurable in a better way so we don\u0027t need to push build settings at the SDK definition level \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":"Sources/SWBQNXPlatform/Plugin.swift"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"14be8c8049e628dfa994e48d812eaea0d011f8fe5e43ca2c12eae4c115a4f424"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: androideabi for armv7! \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":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d8b839f7b4957da11b5c34755328091f56729140aa8989170ef11a486c76446"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There\u0027s no way to emit any errors 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":"Sources/SWBApplePlatform/StoryboardLinker.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cda397407e621c15cc9905717f3ff8b99ab4dd5134f498e07b5bce470b1c5c3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment repeated across 18 files: The identical FixmeComment appears in 18 files (18 occurrences) \u2014 almost certainly one boilerplate line from a single migration or decision, not 18 independent debts. Fix the systemic cause once rather than file-by-file. Text: \u0022// FIXME: We should ensure this cannot happen.\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":"Sources/SWBApplePlatform/RegisterExecutionPolicyException.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"513fa143f563dbedf550ae7e34992e703a8092d6a92b01b6fc1397672cd2983e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: check that schemaPath file exists and is not empty \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":"Sources/SWBApplePlatform/RealityAssetsTaskProducer.swift"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"318ff95992accdfa1c17b4693509b529c790c3cd09f88c725ef9afb1eb4162fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://65011964 (Remove PLATFORM_PREFERRED_ARCH) \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":"Sources/SWBApplePlatform/Plugin.swift"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"1945e7729ca821ba47d8a86ee2bae816d625164b13f64aecdd8cc84e2729fee3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a bit hacky, but we don\u0027t have a good way here to check \u0022is any Apple platform\u0022. \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":"Sources/SWBApplePlatform/Plugin.swift"},"region":{"startLine":330}}}],"partialFingerprints":{"codehealthFindingId/v1":"6601a785ae3ccbd62ccbb29e49aabeb651a245bbd532829471fdefc2accbee63"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to lookup known file types. \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":"Sources/SWBApplePlatform/MiGCompiler.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"64213d2e7edb7d70294dc3a1427193af56a4d4f88e37bedcd9dd46fdc08d7688"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to lookup known file types. \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":"Sources/SWBApplePlatform/MiGCompiler.swift"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b62650b6e8dbcccdbc52600154b3731ddbf71e22a3d33a7a418a054113001a1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to lookup known file types. \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":"Sources/SWBUniversalPlatform/YaccCompiler.swift"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"df2624009e087e3894d3a8263b5805f2c2eacd0b892b4dfdf090e2c250eb40ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Populate the outputs. \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":"Sources/SWBApplePlatform/MiGCompiler.swift"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d7fe42d9d0a8d7c6de81e47a5d924f22d95c33c5125cd91a7ce893c60fe4049"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could push a setting 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":"Sources/SWBApplePlatform/InterfaceBuilderShared.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7657d3cf6f7681d42978e26327fc89321a2509e040445a3f3564c8fe7e6b3b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be using FileTypeSpec.conformsTo() here, but we don\u0027t have a good way in this context to look up the file 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":"Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"8774988c2ab44235c0591e2fa5554cdac0a006ad54465d1f5896b4104c7eb82a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add the output paths for the .strings files.  I think this is a little tricky because ibtool will lay down strings files for .xibs, but not for .storyboards; instead the storyboard linker will put the .strings files in place.  I\u0027m not certain about that, though. \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":"Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"c159b09777a47d39006df0bfae422fedd03916cb262b5c10e2610e705267068d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we emit a generic error in this case?  Should the code generator ever return no files to be generated? \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":"Sources/SWBApplePlatform/IntentsCompiler.swift"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"96e74939fa4b3a47b34d012a0e0d1fd564727cc6f7d0f5245acd56e580314b57"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we emit a generic error in this case?  Should the code generator ever return no files to be generated? \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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a9dc351a7b6cc074f31c4653686533a7bce143f567abb1f4a3de22c2e5c276d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we emit a generic error in this case?  Should the code generator ever return no files to be generated? \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":"Sources/SWBApplePlatform/CoreDataCompiler.swift"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"8af9f8e21165692674cf555cd8b4d18bba0768585118a50cedbfbd898f994f50"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Presently we have no good way during grouping to detect whether we\u0027re matching a single file against tiffutil or multiple files against tiffutil.  In principle we could handle that in FilesBasedBuildPhaseTaskProducer once all grouping is completed.  But at present this is handled in a hackier manner in TiffUtilToolSpec.constructTasks() - see the FIXME comment therein for more about 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":"Sources/SWBApplePlatform/ImageScaleFactorsInputFileGroupingStrategy.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"89b9d120b9d45777d13fd609191c14c0cf53920fb952ecb63c7beafe807293dc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make unconditionally true once the following lands: \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":"Sources/SWBApplePlatform/IIGCompiler.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"b650b4897ce76f0ae5ec0fc1793c79066b8f9ba93652a137b6798630795b507c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should consider making an actual \u0022CpHeader\u0022 tool, then sinking the Unifdef conditional into 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":"Sources/SWBApplePlatform/IIGCompiler.swift"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"94d06d4d2ff7d517063a22b4b7b99881ee36b1ae80bcfb45070722cb82cea0b8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should consider making an actual \u0022CpHeader\u0022 tool, then sinking the Unifdef conditional into 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/HeadersTaskProducer.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d0782e5ac8441fdad01d61637356b7e8749a1a0925b252171d5689f6915d960"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: rdar://59938938 rename intentsCodegenVisibility to a more generic name \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":"Sources/SWBApplePlatform/CoreMLCompiler.swift"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa2b2850160115035a8a215e95ae451b16d4f671bb94c4dd9f781073719ad6df"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO Should we make this a property of the product 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":"Sources/SWBApplePlatform/ActoolInputFileGroupingStrategy.swift"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3cba2ea0a217c8fa78334da4c0863f6c210e3a48d2e087c3120bd33960f6159"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should just map on the UUID type, not a string. \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":"Sources/SWBBuildService/Session.swift"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"f845dffb0ae74e1fc20f7e06c3d4b05158dc49e41e1f46004639620d3bed2340"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should just map on the UUID type, not a string. \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":"Sources/SWBBuildService/Session.swift"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f2490796629c404f42d2326c6d96327dd16f9721da0e1ff7a4bfc8c15699323"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We have temporarily disabled going through the planning operation, since it was causing significant churn: \u003Crdar://problem/31772753\u003E ProvisioningInputs are changing substantially for the same request \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":"Sources/SWBBuildService/PreviewInfo.swift"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"01a55a841a003b54aa16753dd4f0158dc3ffe91b128f1f3f28e3d44499836f95"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We have temporarily disabled going through the planning operation, since it was causing significant churn: \u003Crdar://problem/31772753\u003E ProvisioningInputs are changing substantially for the same request \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":781}}}],"partialFingerprints":{"codehealthFindingId/v1":"268c685fd28c1fbf60ed2e1a2914b8c3ade0f583c9b6698a2d109af7a5ef803e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We have temporarily disabled going through the planning operation, since it was causing significant churn: \u003Crdar://problem/31772753\u003E ProvisioningInputs are changing substantially for the same request \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":"Sources/SWBBuildService/DocumentationInfo.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"d27aa5b1abacb6346db66bf8ce26583de0847782d22799626bc81c0f77d873d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should report an issue if we couldn\u0027t read the file.  Though presently I think the provisioning inputs generation machinery will do that, it might be clearer to just deal with it ourselves.  However, if \u0060CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION\u0060 is being used, the file path might point to a generated file which hasn\u0027t yet been created, and we won\u0027t be able to read it anyways. \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":"Sources/SWBBuildService/PlanningOperation.swift"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e2a6c7ac5186f059ac687a62758575892b942bc924c9db9cfe4973074569719"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need better error handing here.  Probably if anything goes wrong then we should fail the build. \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":"Sources/SWBBuildService/PlanningOperation.swift"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"01161a1c505c4a376e76e7db3ea5a9785b7f4f8a65ea95cc0957a4c2dbd0b6b9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"ada7631e6b84f07f8979004561a7b1d248c1509f92dce873b5ebc33e97e40f9d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"a51db995ce97507154d4969b810d178bf192e2c6a686cfe38393fe0ddcbb1420"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fb26215b53582d5d18712965253d13959574d4869623ef99f9918aa4e4717ca"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1712}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac61cb441978bd06bb7e29be88e2dcec041b92538fa124ac1c568f4c2a199a7f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":338}}}],"partialFingerprints":{"codehealthFindingId/v1":"008725d9adee7a5848bb1e3f8b913160330d6bc4ae1d1c07d460a80fe0c6f759"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":362}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca8642afe245ddf74511b5b6c90096f05a6eb2d92d73058b16696c9d19582e4d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete once all clients are no longer calling the public APIs which invoke this message \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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":1315}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ed21ea319f41a886a2ef90fcebc5b24d16af67e572188136127b75bc19a9b36"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to use ActiveBuild. \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":751}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef4c3bdd82f167c7a6a2e0b6ff7a1d77e4e807bfa2892f668eb3f91c52ee40ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to use ActiveBuild. \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":841}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a7e04a039451d71b4d8425dc77f60e448c868c6d4cd6c912a366f04564b4bf8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to use ActiveBuild. \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1097}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcb570ed4818935ac1c29c608ca553458ac42334e262795f53fc49395c4c3423"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to use ActiveBuild. \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1319}}}],"partialFingerprints":{"codehealthFindingId/v1":"510dac9df4e5f00e4404cebc6dca76d2477621504c3a2d2dcce268b57c130c34"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should use this delegate to report status messages about when an indexing request forced us to create a new build description, something which is known to be a source of serious performance issues: \u003Crdar://problem/31633726\u003E Still a lot of build description churn \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":757}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a73704cff7ebfb9694764085abf7faeedb5814bfdc8695c0f78da587725c6e4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should use this delegate to report status messages about when an indexing request forced us to create a new build description, something which is known to be a source of serious performance issues: \u003Crdar://problem/31633726\u003E Still a lot of build description churn \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1107}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e4b6203d09b7d39d33b5d5e79af05f6422cd23fcfba4e39e12412de24438a70"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should use this delegate to report status messages about when a documentation info request forced us to create a new build description, something which is known to be a source of serious performance issues: \u003Crdar://problem/31633726\u003E Still a lot of build description churn \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":851}}}],"partialFingerprints":{"codehealthFindingId/v1":"a86efa2686670b16e3c52a36f27c36862028fbdd7ccdb978891d421ce0c5f3cf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I\u0027m not sure what sort of error handling we should have here: If we can\u0027t find a declaration for a key, should we fail the lookup, or just ignore it?  (Presently we ignore it.)  If we can\u0027t parse a value, should we fail the lookup, or just ignore it?  (Presently we ignore 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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1422}}}],"partialFingerprints":{"codehealthFindingId/v1":"82963de555da0f788e349ca3df98a54bba113354b63460b39ac58936b93fcaf8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to send a reply here, but this infrastructure is actually quite broken right now and leaks handlers if not. \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":"Sources/SWBBuildService/Messages.swift"},"region":{"startLine":1574}}}],"partialFingerprints":{"codehealthFindingId/v1":"c954509c968433d9a7e7edde18a91896dff9235438b028cdd2ea871d13c0ef17"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Workaround: \u003Crdar://problem/26249252\u003E Unable to prefer my own type over NS renamed types \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"34bcb6fa3f06235e117af0b1c4f357e18ef5933f322a559d1ca47fb7cfb85217"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Workaround: \u003Crdar://problem/26249252\u003E Unable to prefer my own type over NS renamed types \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"08febd4b8b57ecbcfafbd8448b7ccb9c1e3e84909fca86e4fa4019b7b110dcfc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Workaround: \u003Crdar://problem/26249252\u003E Unable to prefer my own type over NS renamed types \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/SWBUtilTests/OrderedSetTests.swift"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"009fa8bde1bb4303991b8eff890b1180d39fbbdd533f89f753386a5dc8444b8a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Maybe this should go in its own object/delegate that can be shared between OperationDelegate and PreparationProgressDelegate. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"40dd87ba2aaef097606a4664961c48cc9a1c0d985a9ffb716c766742a544ea6b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: over time, pre-concurrency cancellation flags should transition to check the task cancellation state instead, since having two mechanisms is redundant. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0c78db063ffaddf7cdb8f2360b0a0de857cac31452625333db086b761f62fdf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should have a channel for reporting errors here which don\u0027t make it look like there was an internal service error. E.g., if we fail to create or write the build description or manifest because of some error outside of our control, we should simply report that and not make it look like we might have a 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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":449}}}],"partialFingerprints":{"codehealthFindingId/v1":"f797c93f4be771f58ddfa68abf5ce78331ee3a2a66420e78e272406addb45ce9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be factored out as a reusable ObjectIDMapping soon (it\u0027s not actually set since it doesn\u0027t implement the actual Set protocol). \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":602}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5b75ddfec52ce673cff318a6f38ba9ce06db9292ec34e244086b66b27cc9ae7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: See similar code in primary task started method. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":831}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff7efcd1ea24b2db3b0f7dfc6f10c8b5ceee36ee23970dd407490f0c3c99b853"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Compute configurationIsDefault correctly. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1167}}}],"partialFingerprints":{"codehealthFindingId/v1":"25a0a6182c46d17d1e5daea9e85a9ac97b8ee8f98d651f9b16dd791fb657ac6e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME (rdar://53726633): It\u0027s really not safe to be using the \u0060target\u0060 property off of the \u0060configuredTarget\u0060 due to the fact that this can hold old references to project model items if the PIF/build descriptions are re-used, but the project model instances are re-created. This is a targeted fix for rdar://50962080, which should be address more correctly later. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1168}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6323ce197102276c7828276521d4b201573a3fe423d73938cbcf9de9c970e8b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate we have to query this again here; we should be able to get it from the operation. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1181}}}],"partialFingerprints":{"codehealthFindingId/v1":"1368ea2af29f0bbd2e698f2b461a5e997bce55197d863cf490392f3c06537e25"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Convert everything here to bytes. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1315}}}],"partialFingerprints":{"codehealthFindingId/v1":"53946ad34b5114a7679e50aa76c4d206c729f4ba556725aa2dd6864419a7e0f5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Does this really belong at this layer, versus one layer below in the build system? It feels integral to the build, not the reporting 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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1329}}}],"partialFingerprints":{"codehealthFindingId/v1":"73e0e6029dd7e0df28ce92694bd3f8757cdcbeefe49be9f741964cdb0d4eaccd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It\u0027s a little weird that this is stored on the task output handler, but we keep the existing code structure for now to minimize change risk. \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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1362}}}],"partialFingerprints":{"codehealthFindingId/v1":"86cf7982da100049c7642694e8e3ad097ada22346aec51161f32ea71a468f5df"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It isn\u0027t clear what signalled is supposed to mean here; lift this to be more structured 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":"Sources/SWBBuildService/BuildOperationMessages.swift"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba9b2ae6ee0ea34b8df33677b04aa8ca6674641a5ed723dbb26f0300d97b053f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we report any issues creating the GlobalProductPlan somehow? \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"05e09b2c2e760d20f654a000753225999900d630c445d2b2fff1f3f07a45edfc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is incomplete. We likely need to use \u0060TaskProducer.willProduceBinary()\u0060 to know this, which means factoring that out somewhere where we can use it.  For now we use whether the target is a StandardTarget as a proxy 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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"a625b687618d99206a17cb7427659c3165b991a2cb51fe6320790cbd06fc8a5a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This may not be correct.  Wrapped targets will always create a product, but standalone products may not if they don\u0027t create a binary.  We should figure out whether we need to account 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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"0170b7b0ab4cb06a38a387c553fc287de740a01742e1ebda5be845ee3a5f9bf4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out how to report an issue in as an error in the data structures. \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"53276da76f3629cb33d8cf1c4332b3b2e833949f9a2a6a9cf0a0d0f7d85642c6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: all of the below are using linkType: .searchPath, we aren\u0027t reporting .absolutePath \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"7db1fc5dfe4080d23c902dabb9c2ab8808df0522ac4a3896331f9582cac8a78b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: static frameworks? \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"95ebe76984be0a9e93fcca30bbe053761b6c3b2053136783d593746906227386"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Handle wrapper.xcframework \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"70a83af337fac50a47604865a0738a9075fa587496f291865a01fdf22c50408e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Deduplicate inputs if we can (and if we want to bother). \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":"Sources/SWBBuildService/BuildDependencyInfo.swift"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b394d03e1787285a28693f38fd953ee21c708624c6d5d199be37fa1a018bac4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I would like the model here to be that the message payload contains a pair of rule\u002Btask\u002B(other?) tuples, and the node between them, and then generates a nicely formatted message taking all of those into account. \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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"7412d6d878b5f3550df2fd9a8c567f7c278a8e7fe50d03d45f9568741644bd26"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t handle the case where the workspace has multiple targets with the same name (in different projects). \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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0b74183fa7fa7ecf77c899ea3da8f289ac2ce430d0174b39df94fbf19e2ad32"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t handle the case where the workspace has multiple targets with the same name (in different projects). \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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"47b710a091f33a110f14f58d4b4894c92e615cc97cc0f3bacee78df60836498a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is still using the logic from the pre-Aug 2023 class, and it can likely be updated to use some of the rewritten infrastructure for the multi-target logic above, as well as improving its approach overall. \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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"f883cb8a2da64981082d0ca526739996def41d8aff08402e16fb9d3d15f72d73"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://96577920\u003E Target names are not globally unique; compare on the ConfiguredTarget instance \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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba9c947b0915f8bc4807d776493c309696b178e7d83d750c51c38d3ed7eb0c64"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should document requirements w.r.t. threading exposure of the delegate. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2c45ff35f87e3dd12dc472ae36e3e497d9c1b54f9f772a7c73c778444d06152"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want this to be structured so that we can share the loaded build engine across multiple in process build invocations. We probably would want the low-level build system to be cached at the BuildManager level, I\u0027m guessing. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":581}}}],"partialFingerprints":{"codehealthFindingId/v1":"d18c376fdab8b44f1c458af1a15b62a57bb3574db1fbbc43ebc91165f6ee1357"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This API is not thread safe, and we can\u0027t fix the concurrency issues outside of llbuild itself. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":591}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9dfe0cc9c5f86a2a4141399671f247da58d420beb39e763d158e62838af4598"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There is a race here, we might install the system after we receive the cancellation, but before the low-level build starts. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":613}}}],"partialFingerprints":{"codehealthFindingId/v1":"29befc4e422205d2ef8dad6871b62e8287652ea07bfbf961fabf4218679126dc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://58766295\u003E We need to get more metrics when the build wasCancelled and llbuild returned 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":743}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff9f9ef3917ede4d2577548a3c912453f9a990f3f79e9cd73db5cd7d5a36fd79"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is unsafe and could deadlock due to thread starvation. rdar://107154900 tracks making this truly asynchronous, which requires some work at the llbuild layer as well. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1295}}}],"partialFingerprints":{"codehealthFindingId/v1":"f193b6fbc2017f556b2df2d593517582d229f87a197054804d0df5d1a2a4e906"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should never fail (since we are executing), but we have seen a crash here with that assumption. For now we are defensive until the source can be tracked down: \u003Crdar://problem/31670274\u003E Diagnose unexpected missing output delegate from: \u003Crdar://problem/31669245\u003E Crash in InProcessCommand.execute() \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1304}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9af1e3394326245785f90bb399afbcfbbea65c561b468b49f21f2423ac34cc6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a better way to maintain command associations. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1399}}}],"partialFingerprints":{"codehealthFindingId/v1":"04a3aab2030f0e3e1ff62bc94c1e5a8a291118b27883772d74c2a113499f3fa3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a better way to maintain command associations. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1895}}}],"partialFingerprints":{"codehealthFindingId/v1":"30b16d82e0de83498bf2dde0b416d176d48439353465d39829a25bef4cbdf7e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a very bad idea, doing a sync against the response queue is introducing artificial latency when an in-process command needs to wait for the response queue to flush. However, we also can\u0027t simply move to a decoupled lock, because we don\u0027t want the command to start reporting output before it has been fully reported as having started. We need to move in-process task to another model. \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1790}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f8cafbdaa36e7760a67fffb9970e23b219da3310873e05d8ce0798d3a1a2f12"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Design a strategy for reporting status of those things. We should at least be able to concretely \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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":1904}}}],"partialFingerprints":{"codehealthFindingId/v1":"c62986a837d54bdc46a062342e4b6524714f895e08227b89df09afb5b7659cc9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This shouldn\u0027t be optional, but it is until we always have an assigned delegate 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2339}}}],"partialFingerprints":{"codehealthFindingId/v1":"90caec6fafe194339ba5a80c30ddae2305f496559f01f52ea87e6bb2eaad5c94"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This shouldn\u0027t be optional, but it is until we always have an assigned delegate 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":"Sources/SWBBuildSystem/BuildOperation.swift"},"region":{"startLine":2346}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a64a334a39e2b286fe8bc2e11d17b0ac587c3ff819d995f6b7e0d478211a55d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: We would like this to be automatically invalidate when the build description goes away, but this currently shouldn\u0027t ever be a major leak because we store at most one per database 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":"Sources/SWBBuildSystem/BuildManager.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"911550756fda03f2acb74487513c36c0e1369c52083ffba59324bd33ab4529a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make the lower-level build system actually do this, or do something else here (like dispatch one build at a time). \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":"Sources/SWBBuildSystem/BuildManager.swift"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6637a8d3dfa77efcb1cd04e7e7976813fc82d1c1c842fc4047d56497b39eff6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: user, mode, group, etc. \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":"Sources/SWBCAS/CASFSNode.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"177441029747ec6a6637e144dddc8f3e29ac71786f870ffd806b2ec88eb81b3e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: user, mode, group, etc. \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":"Sources/SWBCAS/CASFSNode.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"88761abdb2df68de4085f595fad23f419532e1a579706f8faac60aaef58b4ae2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: user, mode, group, etc. \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":"Sources/SWBCAS/CASFSNode.swift"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4aabd7cbf165d0043338a9b9c1929b124cc0a8233b25d38efb045c4c08e14e2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Consider allowing flat layout for swiftmodule/swiftinterface files. (rdar://51674808) \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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1269}}}],"partialFingerprints":{"codehealthFindingId/v1":"c76abe0e2e9fddcd10260c042910c33f5c451e805cc78efa56bc504eaa587580"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Support nested filtering as well so we can filter things like \u0060.git/**\u0060. (rdar://81236853) \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":"Sources/SWBCore/XCFramework.swift"},"region":{"startLine":1293}}}],"partialFingerprints":{"codehealthFindingId/v1":"d747c9493152773a4ecde8758c1539922bc70c60ba44a3569ff3a8ec133ad4e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/36364112\u003E We should perform late binding and parsing of these settings in Core.getInitializedCore() rather than binding them when creating a Settings object. \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":"Sources/SWBCore/ToolchainRegistry.swift"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa2115b6f355a6ae393a69f45cdd83b6d5f019dcaa163afad03285a28681e019"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is rather unfortunate that we need to expose this at this level. Only Swift uses this, 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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"419647d4b0052879673886d64440f9eebe682569c3ca470077a136ce220ad828"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move these specs out of here, we should just pre-bind these in the core so no one ever needs to look things like that up. \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe05c93f626d8faf49a8c884b6c139e7d9ac75f964c07df2564181c37a52261c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is only used by some specs, it would be nice to have some enforcement that it is passed to the ones that require 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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":423}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ef1aa22652e51c08d376b295242c3363e8fe5b10ecfa4d77259e196f739ea61"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This mechanism is only used in _very_ limited circumstances currently to provide a way to enforce additional ordering between tasks (which is required by our current mutable output handling), when no other ordering is in place (i.e. no build phase is in between the producer and consumer). \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":431}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4f311ed0a04e3204f8616d47796393ba85a669d4a28a809e2d4270cf49c6ce6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This mechanism is only used in _very_ limited circumstances currently to provide a way to enforce additional ordering between tasks (which is required by our current mutable output handling), when no other ordering is in place (i.e. no build phase is in between the producer and consumer). \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":436}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdd2673bebcc9d0b80d59e12c9d814378a0542f5c0127e436164bfc2955d463c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: This is a hack designed to easily allow constructing variant-neutral tasks (tasks for which there should be only one instance of per-product, regardless of the number of variants) until we have first-class support for this (rdar://45330111). \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffcb689e8ee9d3f1a115cacc1ed76d9648171adc4ed6a6faa8bacad9f60a50df"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this optional \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":664}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e30a7c4693df98aa149fd79e1c78624415de1b0caf88b21d19c06b621b10044"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to support diagnostics specific to an individual command build. \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":761}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e6b82afbecdeb73bb259b36879779e8623900b6a514e81ad7695f6155e32a32"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Could we handle this automatically based simply on the declared outputs? We know from the file type which are source files. \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"469ea1be1f8c570827e5799606eea81577aed9a580ddbbdc45dd28279acbc84c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: This is arguably a bit esoteric, but creating API that explicitly deals with precompiled headers seemed wrong here.  Rather, this is intended to be a way to provide generalized sharing of nodes that are created in quite specialized ways. \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":827}}}],"partialFingerprints":{"codehealthFindingId/v1":"625186b9ac02b3aad2dca397a42d05fcb59d0f2cc388446768ac39a52a6b6078"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: The name of this method is also a bit awkward.  We could probably do better. \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":828}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aa1dfe3ed1bf66f2d6133797b2861800ea514e88c7b3f7b7c6bdd1c6564b2ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This protocol is similar to \u0060TaskOutputDelegate\u0060, but for layering purposes they are currently distinct. We should see if this can be cleaned up. \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":"Sources/SWBCore/TaskGeneration.swift"},"region":{"startLine":1444}}}],"partialFingerprints":{"codehealthFindingId/v1":"400545c48052c0d877dee5406eb6beb399e84f9c0defa85d6143be61e3be2214"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Report cycles via the delegate. \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7c22c8aa94341e1aad253a2d9a7891af8799f6015629e4b35036fb0eed164ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a target-level diagnostic once rdar://108290784 (Target-level diagnostics are possibly not working for failures during planning) has been fixed. \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":327}}}],"partialFingerprints":{"codehealthFindingId/v1":"dac0e54caab266ef76b21dabe3037d9ead21ffe4427bab960b46674d54bb40af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could simplify all of this if we refactor the discovery logic to have a single data structure as the source of truth, and construct the other data structures from it after performing this postprocessing. \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"2117a0a81c56aa7de49506fe946a3eea0a82d4226b7975e251236e012a2f40f9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a bit gross, but we have to reduce the number of specializations in case there are both internal and public specializations for the same platform, because they would both be building in the same arena. Unfortunately, we cannot do this while creating specializations because that step is running in parallel. In the future, we will likely have to generalize this a bit more for other cases where we need to narrow down the number of specializations based on some criteria. \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":399}}}],"partialFingerprints":{"codehealthFindingId/v1":"21167a3baecce97a8c9ddfa5244c22ca0b1d64e795e618bde3ca4efd05a97306"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to report these cycles: \u003Crdar://problem/31707925\u003E Swift Build should directly report cycles discovered during target graph resolution \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":700}}}],"partialFingerprints":{"codehealthFindingId/v1":"6928184b170514aea34dc9df831017925aa9ba2dc1c16b16697b1d939ef0856c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We eventually will also need to reconcile conflicting requirements, one example: \u003Crdar://problem/31587072\u003E In Swift Build, creating ConfiguredTargets from Targets should take into account minimum deployment target \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":778}}}],"partialFingerprints":{"codehealthFindingId/v1":"79425af00fdb766a3cb68896299f4d117f7196bcf54fd02578a56d3ed02cd8ab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This logic could likely take superimposed properties into account to even further reduce creating duplicate targets, but presently extracting that info from ConfiguredTarget is not easy to do in a generic manner.  It\u0027s also unlikely to yield large performance wins. \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":"Sources/SWBCore/TargetDependencyResolver.swift"},"region":{"startLine":810}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b1f2feda19c301df406103adf6e5385116161a725d21e5a4d769e500395681a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: find a better way to get at 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":"Sources/SWBCore/SwiftOutputParsing.swift"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"09616fb65be6b773de61ff0829a65bf316a935ec4a0e9726890e68fbc4c42347"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should really come from the spec definition, but we don\u0027t have enough information to get that 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":"Sources/SWBCore/SwiftOutputParsing.swift"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb5bd951c183b2d7371f7b588cb677206778532737c77fb3cd217dd6eaadaa32"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I\u0027m not thrilled with this approach, but for now this is my best idea for isolating some of the nastiness of the XCCodeSignContext hierarchy. \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":"Sources/SWBCore/SigningSupport.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"58b3972fc6ec4a75ef2cc0aca1a81edbce96d41558f512ee844d4e0261bab4dd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be set to \u0022clean\u0022 when we are cleaning. \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cb216b93b1e48cdef4b03f19ae984230c40abb34b2a4ec83707ea8692083abc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note that we merged this function for shell scripts with the very similar code that was used to build the environment for external build commands. Currently in order to retain perfect compatibility we do various things conditionally based on the mode, but really this code should just be a single function that is used for both contexts at some point. \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"79e52b4acbeb12ca22793b6f649e757ee2872f0cd73f63147bedbf233a19457e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: An ER in Xcode is to find some way to supply conditional build settings. We could do that reasonably by mangling them into the old form for any name we identify as should-be-passed-in-environment. \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"312697b30954223e28f7b4a4aa122573088c97f2bafb54d12c06ccb490c8c8ca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Is this used by 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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"8680e9401de5bac01f8db880faf58a3dc249516e693b9f9e859292734876808b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode adds this again later, so this might be effectively dead code. \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"314da068c5c48d7ef3cfa48ef80235648f0b82feea12fc94e98a133d97525d70"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement, need names of per-variant-object-fir-dir-macros and per-variant link file list macros. \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7eccf6db4b78a909f273761a8e4d9ca1dec674c7cb791327d0e5ef761dbcc24"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a total hack just for testing and compatibility. 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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"d40ded865285c4798d1b6cfc1cde9314a0c6438e83819ad95b9f16b58ad98406"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement or deprecate. \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"6012022b47a830e84109a9ccf88d8be23d4a746607b915a43bee28ebde6fb602"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a confusing interaction with the GCC_VERSION \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":"Sources/SWBCore/ShellScript.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea657a93e01cf0e1de938b72534b16490ee5eeb683be6cf6944b037319ce0004"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Presently all of the keys from the \u0027SupportedTargets\u0027 dict are treated as optional.  We should improve this in the future. \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"132a82479ba680cdaeedb55b24e23afdc40924c248fb8e7d348667ef161c5dfd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t belong 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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"92c8ef0d16f81de2049ba8bbd2efcabcd3ea50119f1532075ffda42e211501b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should convert this to a failable initializer and pass it the delegate so it can emit errors when processing the data. \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":806}}}],"partialFingerprints":{"codehealthFindingId/v1":"66b68d9009a98a1d1b4ee9477ec157cc9bf2dd3765e10c69cef1880f1888b6ba"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/34170562\u003E Re-enable this when we want to warn about search paths an SDK declares which do not exist. \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":848}}}],"partialFingerprints":{"codehealthFindingId/v1":"35a881c2e43fed63582acfb8c43edfec197dc626a56988a6d9b4479178ab85b0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/34170562\u003E Re-enable this when we want to warn about search paths an SDK declares which do not exist. \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":861}}}],"partialFingerprints":{"codehealthFindingId/v1":"63b7a3a90dd21060537105d83d21dcd7dc24664ac254fe1b72a0276e1f648636"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/34170562\u003E Re-enable this when we want to warn about search paths an SDK declares which do not exist. \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":874}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4dfd874951d937dacbf97b0de3e96b3e9c66d7a6eb9f2865277dee31c86a326"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Turn this validation back on once our path handling is cleaned up a bit more \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"5853d6200a89ec014a9aaaa27d09a892cd9d31406efec3a4ad445f9416a76964"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Turn this validation back on once our path handling is cleaned up a bit more \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1275}}}],"partialFingerprints":{"codehealthFindingId/v1":"046fd8309c481c44de3938442f0dbe2dd58bcbdffb7c5ad304ee5ef0e77eeb9c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO are these going to be appropriate for all kinds of SDK\u0027s? \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1171}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5ca7604dbb6fc823b1581643b27d18f189fdd6c515f4edd954e44e2f3d8bf42"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO handle tripleProperties.toolSearchPaths \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1209}}}],"partialFingerprints":{"codehealthFindingId/v1":"7686f0c03e5aaf65dae0e23c016e5dc45f7681719c58ea842a7cc0fa0e5afbe3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Leave compatible toolchain information in Swift SDKs \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":"Sources/SWBCore/SDKRegistry.swift"},"region":{"startLine":1259}}}],"partialFingerprints":{"codehealthFindingId/v1":"6874864f58eed987fedc1e0889238f71b9eee9a5d54d82f94c792fdaa9751253"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we add some general mechanism for representing NSErrors in Swift Build?  If so, we should also add a general transport structure to send it over the message pipe. \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":"Sources/SWBCore/ProvisioningTaskInputs.swift"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"423bf8bf564485c118ad115d62de4b590d69aebc3541362fc20754f9ff33148a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Work around lack of thread-safe working directory support in Foundation (Amazon Linux 2, OpenBSD). Executing processes in the current working directory is less deterministic, but all of the clients which use this class are generally not expected to be sensitive to the working directory anyways. This workaround can be removed once we drop support for Amazon Linux 2 and/or adopt swift-subprocess and/or Foundation.Process\u0027s working directory support is made thread safe. \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":"Sources/SWBCore/ProcessExecutionCache.swift"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"68752c51a4a271be71854dda7b8a5448b711b5be8e3f462860343a2b6ae5bd47"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to parse other fields. It would also be nice to diagnose unused keys like we do for Spec data (and we might want to just use the spec parser 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":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":605}}}],"partialFingerprints":{"codehealthFindingId/v1":"7127f66cb505c5dd609df703dd8c7cbda673ad5429eed8973d2a8333cf010f16"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Consider removing deployment target macro from Platform entirely and forcing clients to go through SDKVariant instead, but that\u0027s a bigger change especially with the Mac Catalyst inconsistency between using MACOSX_DEPLOYMENT_TARGET in some places and IPHONEOS_DEPLOYMENT_TARGET in others. \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":"Sources/SWBCore/PlatformRegistry.swift"},"region":{"startLine":660}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba6bdb8cd926df414d95850a1797664e8870b68d4b78fe0de2fdd7f9ffbeb1b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should consider moving to directly using the triple for the whole computation here once we have more tests in place. \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":"Sources/SWBCore/PlatformFiltering.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"26a5649878e3d768819bce6286ee370bbc52346b3cc8043b0d0232694741000d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: These need to be are currently very verbose in an effort to ensure uniqueness (which could still technically be violated if two projects shared a name and a target name). In the long run, we would like llbuild to surface additional features to scope the command namespace differently so that we do can use simpler identifiers. \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":"Sources/SWBCore/PlannedTask.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb974ea8b9c0eba67e859edf1693de0dbe198ff7ba8220a08857cce077fb7e49"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It seems unfortunate that GateTask has to take an ExecutableTask, but I think that the BuildDescription expects that every PlannedTask will have an ExecutableTask. \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":"Sources/SWBCore/PlannedTask.swift"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"627e76f5c253dc72b213720734fe7acf5a472e97baec5a6a6967ae3ab6d4ed5c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should actually only be relevant for PlannedPathNodes, but that will require a lot of adjusting of callers. \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":"Sources/SWBCore/PlannedNode.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"4458bf05e799a5ce67dc697aed7362a63e2a2bae7847ffe3e88c591b3f5e3c11"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: this should really be some kind of weak map or its lifetime scoped to a build description \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":"Sources/SWBCore/PlannedNode.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b16d59501b4fa7f1de03900e932fe7c20915b75781357c7d749c12664d4b44b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It isn\u0027t clear what the right behavior is here. We are parsing a string typed macro and were given a list. For now, we just use the quoted string representation. \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":"Sources/SWBCore/MacroExpressionSourceExtensions.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a8cf670725ce53a09663ad7a6a8fdd6ed355c1c014bb27c29df1f2f033482d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It isn\u0027t clear what the right behavior is here. We are parsing a string typed macro and were given a list. For now, we just use the quoted string representation. \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":375}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f87427f9135580cbb3868a2c5a730ea85a0e58db944c15357951173632f26e8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: In principle we could push \u0027preserveReferencesToSettings\u0027 down to the core evaluation methods, but that\u0027s a lot more work and not immediately needed.  I only added it here because evaluating macros in a whole property list structure is nontrivial. \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":"Sources/SWBCore/MacroEvaluationExtensions.swift"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"00b4fbee091d72367de7db9d66891280d767f06d06936aeda0d2dd84df697be7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This doesn\u0027t belong 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":"Sources/SWBCore/MacroEvaluationExtensions.swift"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"26b6edc0bf1fa71b71bcfd92bf57e7265b55d2f5ad13a50cc209519739b68f2f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to its proper home, and support the other special cases Xcode has (PLATFORM_DIR and SDK_DIR). This should move to using a generic facility, e.g., source trees: \u003Crdar://problem/23576831\u003E Add search paths for .xcconfig macros to match what Xcode has \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":"Sources/SWBCore/MacroConfigFileLoader.swift"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd2bb4fd9e92863598595442a6387d13f2c94c378ba384734df4e904b2227789"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move settings into ConfiguredTarget. \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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c2612cf51fb6ce3ccea1e90c301ad9ff7f9b842289dfcae11fa96d9bd53e03a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: When building with target triples we should match on unversioned triples. But handling the zippering case below in user space may be tricky. \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":"Sources/SWBCore/LinkageDependencyResolver.swift"},"region":{"startLine":422}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7e73a68bf985054be04650234dc035ef7e956325eadd24471b816b559f87da7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This attribute is really private to C compilers, and only used to prevent the versioning stub from using a PCH. It would be nice to find a more narrowly scoped mechanism 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":"Sources/SWBCore/FileToBuild.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad35a0112e9c346b82bb9289c8489a36a70590b3762283b8030f0c57d743b0f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out how this should look, maybe clients have to produce the fully formed output, instead of inferring information? We need to determine how often we know the exact file type in situations where we use 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":"Sources/SWBCore/FileToBuild.swift"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"c25571753fd919bd7c34f41a9c331a520075bc6645083b400d53d4b7cd0af837"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: This should be specific to gate tasks, but we don\u0027t have their information in the build description. \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":"Sources/SWBCore/ExecutableTask.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"4217dd0d7df19d91da307560b2b13a58990a5c70f06254a407947dc4574076c5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should make specialization overrides a separate dictionary in the BuildParameters so we can get rid of this list and simplify BuildParameters.withoutImposedOverrides(). \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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dd38c1ba66800859d14ad74157a34d6f8cafe7fb18b7827e3e30a73e2d871e4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Strictly speaking we should remove any diagnostics related to the toolchain 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":472}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fe6e91e6b96fbcde74f73675f78901326b5f0704e182bdf6aad2d1f7129df81"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Parameterize 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":519}}}],"partialFingerprints":{"codehealthFindingId/v1":"35e3fb0d29fcaff7c2519c39ab7e0c40c0b0d2430f980d40da67135f7707bc7e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a little awkward that we always construct a toolchain SDK regardless of what kind of SDK \u0060matchingSDK\u0060 is. If we were to construct it as a Swift SDK, we\u0027d need a triple anyways... \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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":566}}}],"partialFingerprints":{"codehealthFindingId/v1":"71907ffcb19b982bc4652792fc8dfcca9b605e6fcd66b68b02d83ed00ce0cfde"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is normalizing over file references and product references, but that doesn\u0027t make any sense in the context of resolving implicit dependencies. It would make much more sense for us to directly interpret the target relationship when dealing with a build file which directly references a target, rather than do so via path expansion. \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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":605}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae8c6ef2142bcd659bf42eecaa9b7400c7435169a77777c3e4e83b35ddb38ca3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://80907686 (BuildParameters are ConfiguredTargets is problematic) \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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":988}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a70d5d75a6748d373f765fbf7db8d72e5ae5b654a0d64e9ecc61ab6d7f48d72"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should probably emit a hard error here for package dependencies. \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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":1039}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0d0a091fc3e6ae22687c55c4cf160034a53f5b1c69d466239260884fcb5faa5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Do we need a better way to find the \u0022right\u0022 SDK here? Seems to work fine for macOS 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":"Sources/SWBCore/DependencyResolution.swift"},"region":{"startLine":1146}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c6cfd885fc04834bc301b04f827e94a91fa98db68d3c8893b54e1104d1dd62d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This class is a little split-brained. For performance testings and infrastructure layering purposes, we want to lazily initialize the properties like the plugin managers and the spec loading. However, for diagnostic and external API perspectives, we really just want clients to get one Core that fails if there are any loading errors. For now, we do this by exporting the getInitializedCore() API but leaving the possibility of manually constructing a Core for performance tests. We could clean this up if we moved the various initialization logic bits (i.e., how we set up the SpecRegistry paths) out into different 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":"Sources/SWBCore/Core.swift"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e8146ac730b2c27f6618607e0d76b239413376f2b5d626911cf269b59c3e83c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/36364112\u003E We should also perform late binding of the toolchains\u0027 settings here.  Presently this is done when a Settings object which uses a toolchain is constructed. \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":"Sources/SWBCore/Core.swift"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c4ba8f99788cdba362f098e6b9c0932f2a55cd1670070231c580c635be9dacf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate this requirment for Swift toolchains \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":"Sources/SWBCore/Core.swift"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"a69cf16f29127874efdb0b823bc8d36d5e34a694e40b1533f90be4912c982a05"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should support building the toolchain locally (for \u0060inferiorProductsPath\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":"Sources/SWBCore/Core.swift"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"cafe60b06f2387d766f9811ca7f8147c7eaec80099f1868f2cba1649a0b528ab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is error prone, as it won\u0027t validate that any of these are installed in the expected location. \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":"Sources/SWBCore/Core.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"95415b5beb5e7009d8fb12d623eac89147d83724650db4c08c22ddfe35872d3d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If we remove, move or rename something in the built Xcode, then this will still find the old item in the installed Xcode. \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":"Sources/SWBCore/Core.swift"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb168431c4ec735caa16cd2e61a8ccfdac93415b9f57b9aae4d72afdb341f4b5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We currently assume the first path is the actual products, and ignore all others (for other platforms). This is bogus. \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":"Sources/SWBCore/Core.swift"},"region":{"startLine":793}}}],"partialFingerprints":{"codehealthFindingId/v1":"34698d796280d76c313875dd29003cbacc022ae8b964aa22dd8dd8984a970c84"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We currently assume the first path is the actual products, and ignore all others (for other platforms). This is bogus. \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":"Sources/SwiftBuild/SWBTerminal.swift"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"e898f3f183229ad7b171ace248f2db8be293e14fc2824286fd4ea91c2ef1ac5f"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // NASTY HACK: If the productsPath is the CodeCoverage directory, then we try to find the \u0027real\u0027 products dir, since Xcode itself doesn\u0027t build into that folder.  This scenario happens when running Swift Build unit tests on the desktop. \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":"Sources/SWBCore/Core.swift"},"region":{"startLine":795}}}],"partialFingerprints":{"codehealthFindingId/v1":"2574895a71d3d4ca73bab3bdd21608dd36be41147ae2f9c92fc3e857f5600e71"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Change configuredTarget to use referential equality. This needs some kind of solution to the Target -\u003E ConfiguredTarget problem, though. \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":"Sources/SWBCore/ConfiguredTarget.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"d38dae9ec4c7bc4b9b4fa24d6881980b49def6472e2e54de1a17a93d5ae9cb2e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We key on this a lot -- we need to move this to using reference equality: \u003Crdar://problem/28948909\u003E Change ConfiguredTarget to use reference equality \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":"Sources/SWBCore/ConfiguredTarget.swift"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"001173aff93096db4ce03c398a0bced7dcc2f8deaeedae8a29dc2c5e21ec5c61"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: pack in one byte \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":"Sources/SWBCore/CommandLineArgument.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"1243fb0948f16a5c978968f2f31849805f9d0bae048270ac52509952a4ed1ae6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should unique these values (but preserve their order). \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":"Sources/SWBCore/ClangSerializedDiagnostics.swift"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b297bc207974badba3ec48a376f926c48de2ae33d68faa5ba6eb15895004e44"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: Add a cache 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":"Sources/SWBCore/BuildRuleSet.swift"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28bd20fe7ea7259836656af038765f0ee544aca35c384b7bd4d9cd11a51082b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: COMBINE_HIDPI_IMAGES is a bit of a special case in the build system... \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":"Sources/SWBCore/BuildRuleSet.swift"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad4ebfab359c48512e987f6294eb05c4e85d60348f651f9b133f15b532cd038a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/23567194\u003E We may need to further refine this to check the tool for the file types it supports, especially if the tool the action contains need to be resolved to a concrete tool.  Presently we don\u0027t do that, but instead bake the supported files types for the tool into the build rule condition.  This was done in \u003Crdar://problem/40799214\u003E, and that may need to be backed out if we decide we need to take a different approach. \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":"Sources/SWBCore/BuildRuleSet.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"7354951096d9cecd80015585aac16e56017cb249dd61836519e677e971224c8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There needs to be a way to specify the interpreter \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":"Sources/SWBCore/BuildRuleSet.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"5680af453d4e588cf575577b1f2d3e2bf76506d9b7e649eddd7ffab89728fe3a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For project-style builds (no workspace arena), we shouldn\u0027t grab the first project, because \u0022first\u0022 doesn\u0027t have any special meaning. Ideally we\u0027d pick the top-level project specifically. However, that is not currently possible due to the fact that the PIF is flattened. So we preserve existing behavior for now to avoid breaking the non-workspace, nested-projects use 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":"Sources/SWBCore/BuildRequestContext.swift"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"d583a1b4e4894c8846ffdb2fddf25dab9f581982bd137102d086fbc7cdbb25d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is a bit unfortunate that we need to compute all this for the \u0060uniquingSuffix\u0060 behavior. \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":"Sources/SWBCore/BuildRequestContext.swift"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"821ccbc19924aea7a419fddfc760690d0505151e354b0dedb4f820c479e330f1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should probably move into the \u0022actually build\u0022 framework? \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":"Sources/SWBCore/BuildRequest.swift"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"773f63b5e7ce1020740f9b08bdd632f34ac28838ecffdb0ff26e56a2a15b4b86"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Encode the necessary information for the execution environment. \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":"Sources/SWBCore/BuildRequest.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"b117be4814879d9fc1e9f8d1b3926304c958f38b4d72f644136272134d8422f7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It\u0027s slightly awkward to do this here and might fit better in ActiveBuild, but there are too many call sites right now which aren\u0027t using ActiveBuild but should 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":"Sources/SWBCore/BuildRequest.swift"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81e628941e61daa4cc2b5d609ad59bc417b38a01cbc3751a0ce89b55096e62d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be a fancier type, it should be a table capable of the full complexity of macro setting definition (macro types, multiple definitions, and conditions). \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":"Sources/SWBCore/BuildParameters.swift"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"d06d245267f8d368336989ca74751359a5ad325653fee44022c8527073ee17d3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be a fancier type, it should be a table capable of the full complexity of macro setting definition (macro types, multiple definitions, and conditions). \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":"Sources/SWBCore/BuildParameters.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"552514438565a155de36183f08c94f81044d77799447734b83b7ffb1cdcea38c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be just the path of the command line xcconfig, but Xcode has trouble giving us that 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":"Sources/SWBCore/BuildParameters.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"30a4a6a5348fbf3dfd397f3c58f16f253fbda5b9f31c7feefbb75639988d370e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be just the path of the environment xcconfig, but Xcode has trouble giving us that 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":"Sources/SWBCore/BuildParameters.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfbaeffc80fd409d81cc997d7c9a13b0ae501aca44bb53be6603b42f6b4ae42d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: command line and environment overrides are not currently handled here. If/when we address rdar://80907686, this codepath should no longer be needed though. \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":"Sources/SWBCore/BuildParameters.swift"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac0cd01ad886fcf34a1c05873ea5746d83e86b837e73f71e16c2db4d1fe4dbf6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: A more reliable fallback might be to use GlobalProductPlan.productPathsToProducingTargets (where GlobalProductPlan conforms to TargetInfoProvider) if the absolute path of the product reference in this context were passed in. \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":"Sources/SWBCore/BuildFileResolution.swift"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"002f4b78cb5fdb037dab0ae32efeb82e6369b956be82d43e532fef99280778e8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is potentially unsound since there\u0027s no inherent guarantee that this configured target exists in the build graph, but I think in practice it should work? \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":"Sources/SWBCore/BuildFileResolution.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"06e9fda1717ccfb015c8852391073eea239876811ae714b894950257f60d0865"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ideally, we would be in a position where we can just use the right configured target 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":"Sources/SWBCore/BuildFileResolution.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"b96ed181962cc86e9a3d8535ad4daa50631d14672cffd7290c542dcc98f6f3f2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is historical, and should be cleaned up by making the input model more explicit. This also isn\u0027t exactly what Xcode would do, which is very risky. It is possible that we should extend Xcode to pass this information down with the top-level variant group itself. (This FIXME is from 2017 and was ported from TaskProducer.) \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":"Sources/SWBCore/BuildFileResolution.swift"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cf308cf44584078c2976202f09c4c937aee2a6f7c0b9e712a5a432f16b953bf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Allow rdar://85365710 (Accept phone and pad as aliases for iphone and ipad in actool/ibtool\u0027s --target-device argument) time to propagate \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":"Sources/SWBCore/Apple/DeviceFamily.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"410b3ceb127b16e8ce43696b979965e8c3cad3ffe0734231172d8a2dadd9a513"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Allow rdar://85365710 (Accept phone and pad as aliases for iphone and ipad in actool/ibtool\u0027s --target-device argument) time to propagate \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":"Sources/SWBCore/Apple/DeviceFamily.swift"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"595e259b91a7b8b3e47d50791df014cf9b577db639b2fdfee12285b727a64ccc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Generalize this to be less specific to Mac Catalyst \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":"Sources/SWBCore/Extensions/SDKVariantInfoExtension.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e0b7b668d2a215c6f3f8bd0af86d9bbc1ab4831f32480c3134f3b444d7dd4e7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to separate stdout and stderr \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":"Sources/SWBCore/LibSwiftDriver/PlannedBuild.swift"},"region":{"startLine":523}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef10c5f29c07f820af7da049562831bb1b7b8079f347a1019ba8fe6b3396e952"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Track the SwiftDriver.Job.Kind of SWBCore.SwiftDriverJobs that are not for explicit modules, and use that to classify verification tasks. \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":"Sources/SWBCore/LibSwiftDriver/PlannedBuild.swift"},"region":{"startLine":681}}}],"partialFingerprints":{"codehealthFindingId/v1":"731e79d9f3de70caa77c97703dbec830223d76b47feefe24747f7b435e2baf23"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME \u003Crdar://60711683\u003E: Reenable the use of the environment. \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":"Sources/SWBCore/LibclangVendored/Libclang.swift"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0e02fb37bd37e906bf48eb0b1767033725b3d84cf75c9246909ee0f8acb5985"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Perhaps this can be upstreamed to TSC? \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":"Sources/SWBCore/LibclangVendored/ArrayExtensions.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"9dde3d0a04fd136be6af024ff5cf31ef6ea20b4736beaadd732e9e037c85a57f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move to standard place. \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":"Sources/SWBCore/ProjectModel/WorkspaceHeaderIndex.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc900cd6454f7c00c5207e6beaee0c14e35b0fecbc7e7c213c6837e2e72ee0f8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Optimize 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":"Sources/SWBCore/ProjectModel/WorkspaceHeaderIndex.swift"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"e62df3fac273fd5fc07e2bc167a7885bb602be43f5a9a1fb04ac067c6c24efef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ensure we don\u0027t need to traverse the custom group types. \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":"Sources/SWBCore/ProjectModel/WorkspaceHeaderIndex.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"760e07b8705c367f94c6ffecbc8050b4c2e44f14854a38f844f310faad069274"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should probably only examine targets which are actually in the current project (i.e., not ones which are target references). This shows up in Xcode w.r.t. the headermaps, we need to figure out where it fits in. \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":"Sources/SWBCore/ProjectModel/WorkspaceHeaderIndex.swift"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4db900c4776fb4fd2ef7a2427d81ad2cf3cc2ad0729daa3273acb2552529b95"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ensure we have a test case for this, I think it comes up for projects which have other files in their headers phase. \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":"Sources/SWBCore/ProjectModel/WorkspaceHeaderIndex.swift"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"ada26128263d84b7b0471094f91cfb8ce345a88f8d1ec28a16242797deaeaaf1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This sucks, we are doing the protocol decode twice: \u003Crdar://problem/31097863\u003E Don\u0027t require duplicate binary PIF decode in incremental PIF transfer \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":"Sources/SWBCore/ProjectModel/Workspace.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"aceac6a60042942e181657569c3f120b82a47716b0583a07953b370688616ba0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This sucks, we are doing the protocol decode twice: \u003Crdar://problem/31097863\u003E Don\u0027t require duplicate binary PIF decode in incremental PIF transfer \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":"Sources/SWBCore/ProjectModel/Project.swift"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9cc61c0a3e4f056753b2aae0af22c5adeea31ce006c7c37c029eb5b672ba6ee"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a bit unfortunate, but should be fine in practice, since GUIDs from traditional projects will never look this 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":"Sources/SWBCore/ProjectModel/Workspace.swift"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc480c24940b77b06d60091f187a0a0fb30fa6405a84de46cf7450e1089af0a3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is fairly unfortunate, from a performance perspective, we could have pre-bound these things at load time; except that we reuse loaded objects during incremental PIF loading, so we need to guarantee that they are self-contained and don\u0027t contain external references. For now, we manage this by deferring the lookup until runtime. 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":"Sources/SWBCore/ProjectModel/Workspace.swift"},"region":{"startLine":328}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ddb0a00fc1af140f6c0317aa2ec4efc1ea726f6edfe107a6bf10793d1306e4a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Falling back to an empty string GUID does not seem correct, but this can happen for dependencies on targets from missing project references. Should we instead allow \u0060guid\u0060 to be nil to represent this 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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"b13f91d8aeadff818299137e4e4684b100fd931aac3e98c13cd916dd5d718954"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This code is currently duplicated on the project. We should perhaps have an explicit BuildConfigurationList object, like Xcode, to hold 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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd967255b11dd9891f399cffc44d24abdca24ddf3fd65a911349ef81f2caa5e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If $(CODE_SIGN_STYLE) evaluates to an unexpected value, we should emit an error somewhere. \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":"Sources/SWBCore/ProjectModel/Target.swift"},"region":{"startLine":609}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e81d79791fd667e8541e3ba49847a467e13902fd2a66dd673588784cac53eb1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/27956865\u003E Evaluate whether it is worth eliminating GroupTreeReference\u0027s parent property \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":"Sources/SWBCore/ProjectModel/Reference.swift"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"278fb05258769682e285826aa3dae3e66de4e94f70b50ddbbadfe39a64931338"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Is children really optional for variant groups? \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":"Sources/SWBCore/ProjectModel/Reference.swift"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"707e5ca2d28f7770448be174ca72059ac060697af133769b6c2fe3dcc6548669"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is almost never used inside of Swift Build. We should think about whether this is really something we want to model with a graph connection. \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":"Sources/SWBCore/ProjectModel/Reference.swift"},"region":{"startLine":342}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1b2f5d5c10981d5dcae71a79b2a4a231edbe09b88590ac6b3dcd415b7909850"}},{"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":"Sources/SWBCore/ProjectModel/ProjectModelItem.swift"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc0da2bce22859ab04d7f1067ff3857f76a2a86e082d8d71b8a4f8ea972bdeac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This code is currently duplicated on the target. We should perhaps have an explicit BuildConfigurationList object, like Xcode, to hold 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":"Sources/SWBCore/ProjectModel/Project.swift"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc93aafacdb3fe52e45d9f258e2a1c8cb5fa52394cd60b836c6d38fa3c4dde76"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate the legacy encoding so we can get rid of 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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c9b9beb70633bcd7aa12a763f45b56e472e78d0d3de42f563bb52e020261c6c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This API is somewhat cumbersome because of how incremental loading was retrofitted in. We should clean it up. \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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"329924b86871ca905038dde2e525ea26ae8f62cb89c14e444ae2e8843852bb6a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This shouldn\u0027t be fatal, the service should never die on malformed data. \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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"7757e5c8596a99e68c9a99bfdf0ba3051bc3857a26ed41b130c04d754d960e31"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This API doesn\u0027t feel right, it seems bogus that both the incremental loader and the regular loader are both maintaining maps of objects keyed by the same thing. The separation currently is between the incremental loader, which maintains a set of objects across multiple load requests and can communicate back to the client (via \u0060LoadingSession\u0060) about what new objects are required, and the bare \u0060PIFLoader\u0060 which is only responsible for loading a single, complete graph. \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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c7f332d426764887c91cdc86e68f715775718e6d8b52a270d13b939ef74fe4c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we will want a much more sophisticated cache 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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":520}}}],"partialFingerprints":{"codehealthFindingId/v1":"0614eedca2a0b481ec77b43bda8e5173ff4ee247e6ddd0774c777d80707ae241"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to handle the errors thrown from 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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":537}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb58edc433585aeec7c14226bf21b083d31bc2465425ac80abd538010faba9f5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to handle the errors thrown from 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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":561}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b04fce94be2808735cf4c8cb6a9144695916fa406af4242559ea500f8d54bc7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to handle the errors thrown from 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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":570}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b65c09709dfb1225dd2a1a35dc6a48cd8ff96d6a080a77016e35e1199fe6eeb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use a more efficient representation: \u003Crdar://problem/28190187\u003E Improve PIF data cache \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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":615}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a63c7e8f5fdb12d8a4d831ee11fabe6b86b89fc15ba0024b6afe9dc9fe2a1b6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use a more efficient representation: \u003Crdar://problem/28190187\u003E Improve PIF data cache \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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":634}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ce930cdf54eaefee5a6bf490dd82c9b7fb7b09233a32efecd48d0d454336256"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use a more efficient representation: \u003Crdar://problem/28190187\u003E Improve PIF data cache \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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"07e6d876c0f9e0777a417d3b085c1e45d7c0aa4c3a105a13137dab532320212f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Clean up the model within this class, once the legacy implementation dies. \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":"Sources/SWBCore/ProjectModel/BuildRule.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"073973bad7ffb1c9be9bb767e0e4f313850be5da86c2e2c8e1f77b9c6a80c67f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/29304140\u003E Adopt the new API when it\u0027s available rather than doing this naive split. \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":"Sources/SWBCore/ProjectModel/BuildRule.swift"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d280fb8792fff7a60f1660761ea9e192bfc0320bdd78c1e003a06493a964102"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/29304140\u003E Adopt the new API when it\u0027s available rather than doing this naive split. \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":"Sources/SWBCore/ProjectModel/BuildRule.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"601aeef519556d1fce209749c9f47b0515494d21bef3e33d85f086f900b35eaf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/29304140\u003E Adopt the new API when it\u0027s available rather than doing this naive split. \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":"Sources/SWBCore/Settings/BuildRuleFile.swift"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"43bebe80484a32c3f5205a87fba7d8ebc44c03428c4dc6e3ec9256aaa3a7f4d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a string list, but this matches PBXBuild. Also, this shouldn\u0027t ever be a 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":"Sources/SWBCore/ProjectModel/BuildPhase.swift"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"b23a11c641555319fe16b7adba240893ead20386efe748ca27ffdef6c935a2d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should probably be a simple struct, and be more optimized for the common case (to optimize memory use). \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":"Sources/SWBCore/ProjectModel/BuildFile.swift"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5466d9ce223b583df9c4fc5fa648516bd17181e793a49b29fb2aa413befcf24"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Change the base representation once the legacy implementation dies. \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":"Sources/SWBCore/ProjectModel/BuildConfiguration.swift"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c3865d21fe2a03a34bd7caded6447e8f57e2d4afb3cea86abe13dd65f115831"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out where this should really live, and how it should be factored. See also , e.g., MacroNamespace.parseTable. \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":"Sources/SWBCore/ProjectModel/BuildConfiguration.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef1689d9b99407804f612ef022d814f386a39bf7481390d89a1ed60f38ed6da6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to ensure that diagnostics from here are surfaced. \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":"Sources/SWBCore/ProjectModel/BuildConfiguration.swift"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a104360893047ab20513af001f60d20e9210b65d6fa9914cd908c55a1e93e91"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be handled better. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"4906ce46992819e0ff784fe5f99a6f956b0afdcce28f7a124a59ec49950c3f68"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode has support here for adding additional build settings for the option, but nothing seems to use it. Eliminate this if nothing shows up. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"b647c6539c2a5d1d826a8ae44b6423f11058354fa1ab1c4d0816c89e25ca8a39"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deprecate this setting, once we have the capability of doing so. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"51deeb8d99f8ed05f5af4993372ada66e4b255a0fbd2ea4ca971f095460e2a22"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://80796520 (Re-enable dependency 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9306bbf54086a843d019516ce4f613479337c42f708a6d97b8efab5b0b8fafc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://80796520 (Re-enable dependency 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":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf6e18e8625dd927d89099c8ff44778513836ca69e54516729bf1e43b78535f0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://80796520 (Re-enable dependency 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":"Tests/SWBBuildSystemTests/DependencyValidationTests.swift"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a40c47ae4f2f8e30c15a220e51415975f39e479fa29f47b8cc5c9721c3471f0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These need to translate to \u0022fake-VFS\u0022 paths, for the pseudo-SWB 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b569bdb23a37151d81a860992619a3af7b8554e0478209ac693b8f36cd6d3ed"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should see if any of these can be deprecated, once we support that. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"deb30ab56e3fad41de8ea05e58a2a47394741fdf6f14a490d951f1abd4cf92b3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This never actually pushed anything to the table, so I\u0027ve disabled it for 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"819e88114b9eba46c8e021f12ba3f0e26b3ab8598c2a497e51064c7112f96825"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This table is barely used (for Xcode proper it is almost empty). We should figure out if there might be a simpler solution to this problem. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaf57d11090b4bde68d59c5b58343595a73382277451f4dec3b2d19036646704"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is somewhat wasteful, as we end up duplicating values for super specifications. However, that lets us keep the condition set required to enable a particular compiler very simple. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"00afa482a46405c806605a0a07c14c2dece862694b990db54de6624633fc081d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This optimization could be subsumed by the macro assignment table itself, but for now we do it here as an important special 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"43fe5f965519103e1898878e93668fca07b76b90661d8ee27f3830505ab55b3a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need ability to push conditional assignments. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"67ab9bb3c9dc282974650523ed44028090929d0d36f12e014228b7114285f4f5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should probably use file types instead of patterns once we have a good API for that. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"8199b6934277a604f0591b3a3a9ae52537924a8db9f78449b712620f49ca33c6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: See also \u0060createTableFromUserSettings\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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":422}}}],"partialFingerprints":{"codehealthFindingId/v1":"abb17b2a2dbba65c66e9426334d11b1fc57cb29492e210f84dd0342bbd1f91b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/56210749\u003E Support BuildSystem specs per platform - Radar contains work-in-progress patches to support 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":451}}}],"partialFingerprints":{"codehealthFindingId/v1":"173d3a062fc177b2ed2195a1eb1035c0dec3789e900944d4f3a74479d0d7a14b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For legacy compatibility, we only do this when configuring settings for a target. This distinction most likely isn\u0027t important, and should just be eliminated. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"55697b22be9a129bce537e599c595d7a98f8df87a76cc49b194a21a9a8515f35"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For legacy compatibility, we only do this when configuring settings for a target. This distinction most likely isn\u0027t important, and should just be eliminated. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2566}}}],"partialFingerprints":{"codehealthFindingId/v1":"0248ab229b185cb64f737c30084cc197425cca4a3cfb286524d4edb896501a78"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cache 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":495}}}],"partialFingerprints":{"codehealthFindingId/v1":"edcb7781a6903a8515dbd620f66566634e739750ea3b589e510e0d6ec40b0703"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cache 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4231}}}],"partialFingerprints":{"codehealthFindingId/v1":"1daa5141a144ec425cfe9eedbc44bc02b732be08dac7ec979d5de0339b86a9a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This probably shouldn\u0027t be duplicated among all targets, and could be shared by the project or higher-level context. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"1503408068a114c4c6ea76464123d6673f66097354f8a0dfc761bba538fcea2b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://70240308\u003E Remove the latter three at some point and introduce convenience methods to emit simple-string diagnostics. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":706}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dc1184dbdb2c7a68fb93b9e0d2530cc4dad924db46729befda11075f3f05f97"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Annoyingly this probably needs to have both String and [String] values. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":920}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6cc65c0a72cdf1717ee00c41c1f670d905c695c2527e61bfa1359b537e2c796"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1020}}}],"partialFingerprints":{"codehealthFindingId/v1":"280c7227f2edb7a41618765b724cb8c268048c62dd8ae0a00ab32e2a095f2a80"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1802}}}],"partialFingerprints":{"codehealthFindingId/v1":"284547a9419ac27e7c03376ed6c4b304f112957f2334270679471851fe7e174a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1821}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5108b392e6601b593ba942257616fd2072db3f90a831a3f5f24c7c268cc0c27"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1840}}}],"partialFingerprints":{"codehealthFindingId/v1":"912767279039374d74e2ad3ea0998a22f9c3ce36af9e7535bbe509036996bcf3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This exists only for performance reasons, if it was cheap/free we wouldn\u0027t be concerned with this. Try and make it so, or find a way to eliminate the need 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1324}}}],"partialFingerprints":{"codehealthFindingId/v1":"b596af9870fb0a5151d56cadd6ee40a2ed63abdcc1c189427e5ceb8acefde77b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should find some compile-time way to enforce that these properties can\u0027t be used before they are added. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1340}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a72d06ab0259ee4980779e0a251ec2ce6950ed02e720d508865e4bd044527c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Shouldn\u0027t this be separated into sets for each base xcconfig file used (project level, target level, xcodebuild override level)?  A given xcconfig might be #included separately at multiple levels, but it will only be reflected here at the lowest level due to the way this set if built up.  But maybe for what this set is used for that doesn\u0027t materially matter. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1386}}}],"partialFingerprints":{"codehealthFindingId/v1":"0116985a6692e1da2efafd4ef977edf1b3fd8ec3c591832fe1e25141fd8950ce"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should almost certainly not be creating a namespace here, but instead should use an already bound one. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1451}}}],"partialFingerprints":{"codehealthFindingId/v1":"1aef542192cde4df430205a0b4d5c90cb7fca129e33aeee62e0d18f4d9de90a7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is unfortunate, as it makes settings construction about twice as expensive as it otherwise could be. We should eventually try to devise a roadmap in which the binding can happen much more simply, so we don\u0027t need to do 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1478}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffd0243f93d915a97cd8dd7672aa8a9d1a1a357ce760d9ccf0974110829bff29"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Resolve per-arch SDKROOTs, if we end up having to support them. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1515}}}],"partialFingerprints":{"codehealthFindingId/v1":"caa29a843b3287747d81ccfadeaf6e7257b66fb16ff103f51cc9a53c93d0842b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Warning about missing SDKs? Did we do that already? \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1516}}}],"partialFingerprints":{"codehealthFindingId/v1":"714743473dd720f85841d7ce01ab0fd01afcab766101cf9939ec2f4890716669"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Disable for now, because I want to ensure we have a test case for the situation where this matters. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1898}}}],"partialFingerprints":{"codehealthFindingId/v1":"558613944849915e0991f767b05b2919acdf16f022218c74c665c81dca89a5c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: All of the extra work here is just done so we can derive the toolchains, unfortunately. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1915}}}],"partialFingerprints":{"codehealthFindingId/v1":"b673f60e4db518d647b0f00ca529bb32fb93765c23e64247ef711ac858de2b6f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is also duplicated with the main setup path, so if we continue with this approach we need to refactor this into a common method. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":1917}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b8b8195c50069b66701d3b6e2a60666e2756f627f1adf9fc9e03e25bb599cd4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to report an error here if the toolchain couldn\u0027t be found. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2021}}}],"partialFingerprints":{"codehealthFindingId/v1":"0291db38632c59bd7deddd81a171ccfc28c0f173c4ac5ab7bbb2438583089dcd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://69032664\u003E Remove rev-lock hack for new CopyStringsFile build setting \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2152}}}],"partialFingerprints":{"codehealthFindingId/v1":"08567047862a7a7aa585990b470a8af95d5867aec023c541fb8b2dfbdf5069b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Previously, both of these were handled with dynamic property expressions, so they could be pushed in the same place as Xcode in the tier-less model, and as a way to ensure the definition matched the intent. However, we move this until later and then do it in a manner close to what Xcode does, and if it suffices then we may want to stick with it just to avoid the complexity of dynamic expressions (which are tracked by: \u003Crdar://problem/22981068\u003E Add support for \u0022dynamic\u0022 macro 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2234}}}],"partialFingerprints":{"codehealthFindingId/v1":"22e3b57ab768b4895f0e843e5b7e0bb9953d8dd525a3acd3ff18897a0fae3647"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Arguably we should emit a warning if the optimization settings are out of sync, as the user may be getting weird results.  It\u0027s not clear if there are lots of old projects which might spuriously get such a warning, and this isn\u0027t a new state of affairs. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2248}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d5a6c5c14ea9deb53c36d18a59372c8e56619a211f8e6ab4ba1e075a909e5e9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a better name for exactly what this table should map to, and why it exists at the layer it does. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2422}}}],"partialFingerprints":{"codehealthFindingId/v1":"79031761fac9539a5b3954b4e2708b8a69e554938e04321cb65813d6170d1280"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode sets a \u0022CLONE_HEADERS\u0022 setting here for external targets, but its value only changes in response to a user default. I suspect this is legacy code we have no need to support, delete this comment once we can be assured of that. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2428}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5495a83d66d5388a34b7fe0d41d52f7b765b8e95198dd71f53812143e9f668b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This setting is deprecated. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2431}}}],"partialFingerprints":{"codehealthFindingId/v1":"44a9dc753b78d6bdb14f72647181d7a3c43aa73754530fec061eaa36aa4d90c6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to get rid of these style settings, which predate the availability of true per-arch or per-variant build settings. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2434}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfd4fd2ab692526fe5013315bcd56027afdfc3d6bcfd4d7b87af06fc65e84d9a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is gross, and similar logic happens in at least two other places (in the target \u0022dynamic defaults\u0022 and in the target \u0022overrides\u0022 settings). We should clean it all up once we have a solid base to test against. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2465}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0197f4c119545deaf7e206e3861845dd476f45819709e5d608af700126a9127"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is bogus, we are creating a scope here and evaluating a setting, but in Xcode this ends up behaving very differently because of what has been pushed into the tiers. It isn\u0027t clear yet how much this matters in practice. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2467}}}],"partialFingerprints":{"codehealthFindingId/v1":"62f125712a0f63ffa93b2742d24458499c86482221c6bb9841540fff52239940"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should cache this table somewhere. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2543}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0d1221d87f14a72d5f1fb9c47d5440eb62d92de443e6e676fd05165e700bdc6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These macOS paths no longer make sense, they should point to the macOS platform. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2641}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bf2dbb6368e27c47388649b05fda722b53440093180e00b020c4ccdf6a21cd4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should parse tables when we first load the toolchain (to improve performance, but it also gives us a better place to report parse errors) \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2701}}}],"partialFingerprints":{"codehealthFindingId/v1":"c92a1a0467a3efbf672f9bbf464c78abba357eaa5fd55ed2eb04bf68af4eac5e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: What\u0027s the right namespace to use here? Does it depend on if it\u0027s a builtin vs. an external toolchain? \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2702}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf27c962590870d60e9562fccf3bbc60a3c41e2a09b199a4415e453fba9a40b6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should address all of these FIXMEs in \u003Crdar://problem/36364112\u003E Bind \u0026 parse default settings for toolchain at Core creation time \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2703}}}],"partialFingerprints":{"codehealthFindingId/v1":"a96238addaf3d69f30c5e2ca656ad39428e326a883cc114d50eaf48e72e66cb6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Why is this logic not part of loading the SDK in SDKRegistry.registerSDK()?  I think all of the information currently used by this method should be available there. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":2868}}}],"partialFingerprints":{"codehealthFindingId/v1":"26457c61146b4e7e9838183ffa94ecf86f95f51cfc574fd4bf495df456280c61"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate that we need to create a custom file path resolver just for this case (which will not use any cached values). This is also unfortunate from a user perspective, as it is not at all clear what settings could be used in an xcconfig file path. We should consider defining this more formally in a way that can also efficiently be evaluated. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3133}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cdb16bd5a4c79dce5efe9783fa8d2833074e81fa89f9ffcfce697fafeece21"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cache this table somewhere. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3210}}}],"partialFingerprints":{"codehealthFindingId/v1":"1268f1f63430265ca682eb5a087140ac7ce6ff147f053728456c163f4c6efc68"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate that we need to create a custom file path resolver just for this case. See the similar comment for adding project settings. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3282}}}],"partialFingerprints":{"codehealthFindingId/v1":"26859140ec142f4b7dc9406e6d0c210005ca7ee7ffee3ed5ad4b1ac56d6c2b0f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate that we need to create a custom file path resolver just for this case. See the similar comment for adding project settings. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3377}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2f07518bedf6467fc6a0114175ecbd9762b28beb668c8c1ffb1c24ee55df3e5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cache this table, but we can only do that once we share the namespace. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3405}}}],"partialFingerprints":{"codehealthFindingId/v1":"b00f810721a208fa879b5a706bd3b0fd471b83dc33a9512064b4b6ae34b604a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should do something better here if the environment cannot be retrieved \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3481}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc80941cd96788c15e8bb3d00a5629cc8a2122f02675fda2475b320c7c5e715c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: 50493364 (Development Resources: Check for accidentally added files) \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":3548}}}],"partialFingerprints":{"codehealthFindingId/v1":"50940d17225485796986f232d796cb250c8c663d6869b1b1339c638e3ca96177"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These diagnostics come from the signing and provisioning subsystem. We should attach only the specific appropriate build setting(s) to each diagnostic, but we don\u0027t get that data alongside the diagnostic messages. For now, just add all of them, which will do what we want: make the click action navigate to the signing editor in the UI. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4002}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5cbb0ad2deab4cd4790b7af55b63053221e86da4633d5655fdf0d9e9b9b9637"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out a better name and clearer decomposition of these settings. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4273}}}],"partialFingerprints":{"codehealthFindingId/v1":"717017decfc5a4538d5964ab04015946298c4d44d57f2665058e996c06b1a9e6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There is a more random, but questionable stuff here. To be added in a test case driven fashion. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4281}}}],"partialFingerprints":{"codehealthFindingId/v1":"2290aa44485be7c9b24598e2cbe7a108663607208f1948da48712cfadf6850a9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a bad way to enforce this, it doesn\u0027t have any type safety. What would be much better would be to introduce new macro evaluation features that let us write the specs to clearly demarcate paths. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4287}}}],"partialFingerprints":{"codehealthFindingId/v1":"98003fb47e4f6c16119754035309167569c036d7a52687c094e2b8ba5f0f5d0a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/41339901\u003E In Xcode, this also does tilde expansion. We should support that (and test exactly where we want it to work). \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4289}}}],"partialFingerprints":{"codehealthFindingId/v1":"f13d5eb9e968101641dea065c26f94ea22290e29eddc9528cb6a3c32abe45065"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode also normalizes SDKROOT to an absolute path here, although native targets also do this (in a different place). \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4310}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e2e7a48023dfcd22c63d06d3d304c6b06cac085021f866071a6df1322e736c2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is broken for per-arch SDKROOTs, which we try so hard to support earlier. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4332}}}],"partialFingerprints":{"codehealthFindingId/v1":"da9e07b4d3a866f76c3a9acd495d7e9ae36c2dae39ac64029a9871bf9964872b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is gross, aside from just calling it multiple times mostly redundantly, we are also rewriting a build setting which means it doesn\u0027t behave exactly as others do w.r.t. subsequent table modifications. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4334}}}],"partialFingerprints":{"codehealthFindingId/v1":"28e9c3782873bcdd127039f0f2ee6f5b55be416f386d5d45bb1d1e78e3650ed3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We push this separately, because it re-modifies the search paths variables set up above in the overrides. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4336}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bb99d49834e8186c4a4b108264cc8dbce210f1c425b7be08c9a7ad0f7eda7fe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be efficient, and cached. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4401}}}],"partialFingerprints":{"codehealthFindingId/v1":"855c3177cb0d15f17db119ecbcaacd84d66ebbea86a88cd65b62925a2dd52605"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deployment targets could be passed in as part of the target triples, but this method gets called after bindDeploymentTarget() is called. We may need to rework the order of logic if TARGET_TRIPLES is set in an environment where deployment targets are relevant. We may also want to validate whether all defined triples share the same deployment target. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4518}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba28854f3484b8456cdff37dc2bfd012c727247e099123132ff0bf7af3f2a374"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://181281914 Probably this should be moved outside this block to diagnose archs set in TARGET_TRIPLES. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4609}}}],"partialFingerprints":{"codehealthFindingId/v1":"9794bd01be2ea6a9e94cac8440788f5b137beeea0cb2d18c8dc255a85a13401a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Do we need to compute self.preferredArch in the path where we\u0027re passed TARGET_TRIPLES? Or should we change it to be preferredTriple or something? \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4654}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f16b670b51e60c2f48e6c52c3c25e6abe56d137c303533d556e56fb49f07d9e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://181282110 This implies that if for some reason multiple triples in a cohort have different versions (deployment targets), then only the version for the base arch will be used. We should perhaps emit a warning 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":4668}}}],"partialFingerprints":{"codehealthFindingId/v1":"4efcd27576ff1b399b878c515aa2f1b9b3170c3bd0c1ba35a70582790c6d7f2a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate this (requires project changes). \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5108}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8eb6bc1d53e35822864a4801852beceeeaae499771c324d58211920b7ba75a8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Set up the additional per-variant settings, like the per-variant OBJECT_FILE_DIR_... and OTHER_CFLAGS_.... \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5131}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfc0a90a3e2782ea818e971799c02d4db1b90dc5357a99e8d0dd1d40d86ffd15"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note the similar logic in getTargetDynamicSettings(), for non-standard targets. This should be reconciled. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5258}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ecdf1446a8557c10af04ec61e889ea4bd38c0bd0b79e19ee9e0b8183c760452"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note the very similar logic to this previously \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5275}}}],"partialFingerprints":{"codehealthFindingId/v1":"f88ad0a8e466f9b0f5bf5dac6d8f414a334ea9f7007efd77148699e0e6bd87f6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate this. It would also be nice to be able to avoid the user defined type here, but I don\u0027t believe it is safe to inject this into the internal namespace. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5311}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1566dc7764c0945c00438d10091589757b43a4cfed106ffaa96f6af5061346e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use object-file macro. Note that we must parse as a string list here given the expression 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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5347}}}],"partialFingerprints":{"codehealthFindingId/v1":"3acad78f662adb5cd514f95a6e3c97385901854edba6fa0c2b78d001dabc50c4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is bogus and causes problems for our users (e.g., because it cannot be directly controlled), but is necessary for now for backwards compatibility. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5409}}}],"partialFingerprints":{"codehealthFindingId/v1":"858cbca282207dea0b2045cdeaadff3e8ff4144d50b6e59b78deba0fe5cbaf68"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we emit a warning or something if the deployment target can\u0027t be parsed? \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5564}}}],"partialFingerprints":{"codehealthFindingId/v1":"2952d3d980656a158d86e891067527c4a64ce35777296b2c581eab13fcb19b72"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://84686692\u003E We shouldn\u0027t be doing this analysis and storing issue strings for every Settings object.  We should generate these \u0022after the table is fully constructed\u0022 issues on demand when the build starts. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":5702}}}],"partialFingerprints":{"codehealthFindingId/v1":"851eac9fe76a1eca7e5d8c7ab4da14e6be8456056b1664a9d8faf1768064c3bf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate this, or find a home for it. It is also calling a rather inefficient method. \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":"Sources/SWBCore/Settings/Settings.swift"},"region":{"startLine":6125}}}],"partialFingerprints":{"codehealthFindingId/v1":"90f37e754b2ce750e1d97f4afcca8cf6ec6c92a3cc1ae38a3730d50fa8bab58e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use dropFirst() once available everywhere. \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":"Sources/SWBCore/Settings/RecursiveSearchPathResolver.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"54859852fc9cc2896c94edb6d1b42930549c02ad0b46135cb6b71d15aaec441c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we support visiting symlinks optionally? \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":"Sources/SWBCore/Settings/RecursiveSearchPathResolver.swift"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5a2697d7eac1f171c747736e93cf4c9177af72b814d0ec1d936a4e492d1244e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Consolidate OutputPath and OutputFile into a single macro ( rdar://57299916 ). \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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb6543aaf2a402b8b096fc75a58c3f14aa607933914734ed8ca6c0c1356fd498"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These should be deprecated. \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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":217}}}],"partialFingerprints":{"codehealthFindingId/v1":"20d8f49fc2e56a36eaa3c41b6809011f1accabc23e1f71980d697f42d36b8d3f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This macro should be deprecated. \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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"2113ef767fa06f15b09c442481bb87ad89d3d3acb4d35da946bacdf3c317f9da"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This macro should be deprecated. \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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d6f79ec3fbbead8c19fdea5e3218e563d551676edd65d51d66643986f47d5f9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should see which of these can be deprecated. \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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc8895b017bb9d91373ff709706290b86289931876ea65baa47fb538cf968e07"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deprecate 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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":318}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf25bee8e6a8016e7b4a8053e9061cba2fc3ff8b80d0c519d33470c1e2c55581"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deprecate 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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc8d787044f55aae4c87452215a978e9729e7285eb72dd553a4dabe607cf87ca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to declare this, but it is a workaround for an instance of: \u003Crdar://problem/24343554\u003E [Swift Build] Unable to find XCTest 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":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":1014}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfc998988373abb398635372140f0eb414ef3a7d68e31bf67cde75f019b88a95"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Presently we don\u0027t parse OutputFilesCompilerFlags. \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":"Sources/SWBCore/Settings/BuildRuleFile.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8163a3fe9b293c8a251a83be061cc141409f44ae6416caf4f9b584d9812d16d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Presently we don\u0027t parse DependencyInfo. \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":"Sources/SWBCore/Settings/BuildRuleFile.swift"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdfd7ba613a0d2c9efc3cc81420c96058fc1f034165ab9d528a55d127dde72e3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Audit these to eliminate the ones that are unused once the dust settles. \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"330a1a2bc02d4eac02633febd00b6de52e1aafa5090b7099f119218faa4e5dab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should do a UTI-like conformance test. For the moment, however, we just check the \u0060BasedOn\u0060 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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"211f3a123ba6888b749e026fc7091f503e2a159ad4393a1d3174cc4e3b596725"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: In practice, architecture settings come in two flavors, virtual and non-virtual. These should just be made two distinct subclasses because they honor different keys and have different behaviors. For now, though, we can\u0027t enforce anything because the CanonicalName defaults to the identifier, so we can\u0027t just use it as a clue to what kind of setting we have. \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"f704bb4716b750cb9d945e592c0913dc75495b3076f0a14103b0814ebc30bb93"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should make this explicit in the spec. \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f0c9e4843ed9f09b8719952c8c735443f60790ecc99784a70896a48e9c10135"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make the MacOSX Architectures INTERNAL version of this use an array, for consistency. \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"62525d82fef467b085d847f71637ef00fc32d86336518b6af757743806fc98f6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"804da092746cde911f3d67906c1d8cfe3ccd42902e98c169c081290929ac155a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":338}}}],"partialFingerprints":{"codehealthFindingId/v1":"aed05b7509395d6ff4431f3e683b33b5e5b2ba2dc278fcafc0f4365cd4f7c15d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1013}}}],"partialFingerprints":{"codehealthFindingId/v1":"b42a3e9216c0d6e223eb78909f567974beb6d8389234d8fdf2a03ab57a5b5fe0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1795}}}],"partialFingerprints":{"codehealthFindingId/v1":"9db65656c15983ffee4015037f3d82807f6d8622e4bca48f53b4a9c2814f2d68"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea6f8c8f97df1f0941a093eeb74bdd984ee8196715f6d03d01ea6db98cea21be"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/LinkerSpec.swift"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac15bc41f57754f4718f59b8d95afb008beab967632adcf5aba9f7e2eae823ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/CompilerSpec.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"d27605ab5ade5e776e344451f95834a573c860f3357336e0785acac865c9becd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":664}}}],"partialFingerprints":{"codehealthFindingId/v1":"56509922ec2efeae9a03241835762040fa4b4ba54c40497558a6e3686ba211c9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate any of these fields which are unused. \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":"Sources/SWBCore/SpecImplementations/Tools/Lipo.swift"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6777144983cb6e60040e1176801668c1cd37ffe5d39052bd51cef94779781e2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Product reference name \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":413}}}],"partialFingerprints":{"codehealthFindingId/v1":"13c14dd86582c3dc7e4c0e8b9b3b7b6fa5cc45fdc53611c7f235808b3ce7abb3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Product reference \u0027is launchable\u0027 \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":"Sources/SWBCore/SpecImplementations/Specs.swift"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"656d00cd5764ddc97bcaaac12f286632162815d13588a4002badaf1bf92438ae"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, it would be nice to have domains be fully registered and not string based. \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f3da2ece9d01c74e1468ac3569bf8a098f3cd62237212d666acb114bcd4ae08"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: Cleaning this up is tracked by \u003Crdar://problem/22361888\u003E Swift Build: Change handling of \u0022domain-inversion\u0022 for base specs \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"65d62ce40f27c6cda61aea565b357f8859eb06cbcdfcb024797604277bb3bd7c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate we have to do a duplicate traversal for this, but it is much more annoying to need to resolve these lazily. \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae39e00f672204afcf0e753fe9eee44ea2f02b0a080f9dfb232036162f397d85"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should potentially warn about anything else 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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":512}}}],"partialFingerprints":{"codehealthFindingId/v1":"554ea9792b7e73dae3b268fc9f006158e54b3c3b0f3f4eab60cf4f862e74f909"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: Force the class for the app extension product type. We do it in this way because we want to preserve the inheritance hierarchy (ApplicationExtensionProductType *is* a BundleProductType), so we can\u0027t use registerSpecOverrideClass. Going forward, we should set PBXApplicationExtensionProductType in the actual spec, but doing so would require changing the legacy build system, so this may be a light weight compromise for now. We also can\u0027t do a conformance check here, and wouldn\u0027t want to anyways, because we don\u0027t want to override a (potentially derived) class of PBXApplicationExtensionProductType. \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":618}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d5f8bae49fdb0423c676c50dc4c008acfc806013c614f9cdc60e50f0bd1d4a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cleaning this up is tracked by \u003Crdar://problem/22361888\u003E Swift Build: Change handling of \u0022domain-inversion\u0022 for base specs \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":696}}}],"partialFingerprints":{"codehealthFindingId/v1":"de5a4b27b0ae733c0f7286a2b98daabd7bd56199b2184af692c0469162162e62"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I think this can probably be eliminated in favor of just returning all specifications of the particular type. Xcode used a multi-level registry for (domain, registry) which avoids the need for this search, but in practice it is expensive regardless so any client that needs this information should be caching it anyway. Verify this isn\u0027t an issue for us once things have settled, and then eliminate the subregistry stuff if 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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":826}}}],"partialFingerprints":{"codehealthFindingId/v1":"9816f6f31b8ce0d82ac443ad94d21a15552909a18219b216ce84064f5ce67118"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://problem/40394949\u003E Add a series of constants or enum for known file type identifiers \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":963}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6072b4a31936b4206c2a529abe3eeac9456d000b0ecd01efcf387d11a164e29"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://problem/40394951\u003E Think about how to better handle files based on \u0022file type traits\u0022 rather than concrete file type identifiers \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":990}}}],"partialFingerprints":{"codehealthFindingId/v1":"66a805ff56c6779f813242eda43c46d05839fb8864069b11bfcb4778acfbb94b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need efficient implementation. \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":"Sources/SWBCore/SpecImplementations/SpecRegistry.swift"},"region":{"startLine":1023}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b517fe588e4e67cee58340caf7bec7625bf8d9c5f36851cf7e8d5e5d6a41818"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There really should be a way for the \u0060BuildConfiguration\u0060, \u0060MacroConfigFileParser\u0060, and \u0060SpecParser\u0060 types to leverage a set of common parsing utilities. \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":"Sources/SWBCore/SpecImplementations/SpecParser.swift"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"31d8b152dd59545a4001e6eefd3a183e1cb7317ab4bab4895860fb7c7c40a85c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should really have a way to specify the type here instead of simply defaulting to a string/stringlist based on the plist value type, and then deprecate this behavior. Additionally, OpenStep property lists can\u0027t distinguish between booleans and strings, so we\u0027ll check against any previous definition\u0027s type instead of directly returning the declaration, to avoid inconsistent types when parsing macros from an xcspec. \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":"Sources/SWBCore/SpecImplementations/SpecParser.swift"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"8da3029e500099f241b70dfe14512c6b4da598d015ca1c529ed1c2cde1dc65df"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add proper support for shell quoting rules: \u003Crdar://problem/29304140\u003E Add support method for splitting a string into arguments according to shell rules \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":"Sources/SWBCore/SpecImplementations/SpecParser.swift"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c3fb72aa246b439c685c1fb9d889107eb226f2af8b7817432ecb9b296ec6cd5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Sink down to SWBUtil with an implementation not bound to TSC. It\u0027s also not clear that this should be non-failable, as \u0022Because both paths are absolute, they always have a common ancestor (the root path, if nothing else).\u0022 is not true on Windows. \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":"Sources/SWBCore/SpecImplementations/RegisterSpecs.swift"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"e726497233a3b645030880f87e17c379f83adc54822224884e37729a1fb024a7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Sink down to SWBUtil with an implementation not bound to TSC. It\u0027s also not clear that this should be non-failable, as \u0022Because both paths are absolute, they always have a common ancestor (the root path, if nothing else).\u0022 is not true on Windows. \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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":688}}}],"partialFingerprints":{"codehealthFindingId/v1":"8130d2d0501f5e2cd49cc1ef966d248654875c97893aa9e14255ce3b37052189"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Normalize the type spelling (\u003Crdar://problem/22426239\u003E). \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fadd2593058794c7835b7375e7dc6dd5ed2f35a7b5425990256469f2305858c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should possibly be private, and we really want the compiler to be able to optimize it as much as possible. However, we currently depend on it only being internal for our unit tests. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"767bac533f2444ea7db85b148dade87317bb23c6e368830707f25d4e4ee5b72b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: The linker spec is the only one that currently uses a full macro expression here. We should consider moving it to the arg form, just to avoid the parsing overhead for all of the other options. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"06473442a89805085ae729bc7907dacae6d14ff5d856fdf78396bfa68f22a535"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: The linker spec is the only one that currently uses a full macro expression here. We should consider moving it to the arg form, just to avoid the parsing overhead for all of the other options. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a1f326256754f0698308857a87f9046f7e651533c6f469ff8f07dbc13b7893b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is inconsistent with empty \u0027CommandLineFlag\u0027 arguments at the top-level, but depended on by the linker spec. Resolve. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"caa92f123171a7ff4137c428cefe87a720acaaede768ebe201378d0b29fa5791"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We don\u0027t support the \u0027Outputs\u0027 key. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":466}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c7c1b637ea2555df0837213d65d11c5c41e0a182664d117d4d4ba545335647a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note that the code below is already prepared to handle this for scalar types, we just don\u0027t enable it because we don\u0027t want to diverge from Xcode 7 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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4fcc0d8728654997d382bd8400953f8cf60010502e05332a12463feb4fd0177"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this an error once \u003Crdar://problem/22422978\u003E is fully landed. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":505}}}],"partialFingerprints":{"codehealthFindingId/v1":"d99e21ccd8d550e6f776e4fff34a72c6314a92e738e5e1ff9584140cb6504445"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deprecate AllowedValues once \u003Crdar://problem/22425505\u003E lands. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":867}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8403256d0a8d536ad3d64c579fbc6df8ba68f2d963dbe353dca6d8b4813ba6d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The string form is very rarely used, although conceptually it makes sense. We should verify it is worth the complexity though. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":891}}}],"partialFingerprints":{"codehealthFindingId/v1":"efed317bd7f310219e216e0b80edb2d6884b675eae4b4a62e9164fbe8db2a920"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is only used in any spec by TARGETED_DEVICE_FAMILY, and I\u0027m not sure from the UI if it is ever actually used anymore. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1043}}}],"partialFingerprints":{"codehealthFindingId/v1":"e075bc33666d8454b9b40d3fa623b4a1e636621abaf3bea72a6d3317d592fb39"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should support users supplying explicit lists here (for list typed options). \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1246}}}],"partialFingerprints":{"codehealthFindingId/v1":"707e68ce6bd8970a7a2d67e1f6c01d1e4c525c60c6a4fa94f04d0279c96489fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Disabled pending: \u003Crdar://problem/27069050\u003E Eliminate duplicate plist keys and localized strings for build option display name and display description \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1285}}}],"partialFingerprints":{"codehealthFindingId/v1":"a00278697b9158445a7c675e64f7ad39c395ebef8a9472b913e0323635df26c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Disabled pending: \u003Crdar://problem/27069050\u003E Eliminate duplicate plist keys and localized strings for build option display name and display description \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1297}}}],"partialFingerprints":{"codehealthFindingId/v1":"10c8983c2f9cbce86e8f1954ccc6da192df236b5232b976862b88dd300d48869"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Disabled pending: \u003Crdar://problem/27069050\u003E Eliminate duplicate plist keys and localized strings for build option display name and display description \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1309}}}],"partialFingerprints":{"codehealthFindingId/v1":"06ab88a21cbd82196cefacd284f42296fb62fa56973b3d90800427b3786e0c79"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need the producer here, all this should be bound at core load time. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"80d81a02c74832010e793ac50b139b62b039670036b14e01eb8a844fe9215967"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to get more type safety here. We should perhaps use subclasses of BuildOption to make the three major kinds (boolean, string, string list) more apparent. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1411}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7d0e38e4b42faf87c98341835e40e161d4ab160143a3271324ccc245809ef5b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to get more type safety here. We should perhaps use subclasses of BuildOption to make the three major kinds (boolean, string, string list) more apparent. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1580}}}],"partialFingerprints":{"codehealthFindingId/v1":"12ff31ca505e09959c15a20491ed760d1b160f7ebcff1cc952392e0da7604d26"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to get more type safety here. We should perhaps use subclasses of BuildOption to make the three major kinds (boolean, string, string list) more apparent. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1639}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3c9eecef7e57f81bd652dc588a3e2399175d338661ae49c3cbb08e56fa3290a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Add a new CommandLineArgument case to represent joined 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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"40e74acfffb8dee5286410a1f417cdf3b6518ed92f02c8e0fe8eaec1e4a99155"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Add a new CommandLineArgument case to represent joined 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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1553}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab809e373dafa44d0f22b4576dd2a3a160d9d3fa29439b9beb678fe699ecd597"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Filter by supported architecture. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1562}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ac44013048a192922b012c544272073888f093e02d294166e4940d4dceac7af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is probably not right - we likely need to quote or escape the values 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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1595}}}],"partialFingerprints":{"codehealthFindingId/v1":"56f204f578a29c75552269165b65728849bcc72032f7a4088f8725a1472c6244"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is probably not right - we likely need to quote or escape the values 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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1606}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ee4c03b2e208c2c66bdb308cd8a681923bfc48d178691a242656040b6460ee6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Rename \u0027Options\u0027 to \u0027Properties\u0027 in existing specs and eliminate support for the legacy name. \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1778}}}],"partialFingerprints":{"codehealthFindingId/v1":"51715483594380d5ce6c41d06b8c99700436ead267f5ee79fd9fbbf634dd97ba"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Validate that specs never try and define \u0022OutputPath\u0022 or \u0022OutputFormat\u0022, both of which previously had reserved meanings (and were removed from unioned defaults). \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":"Sources/SWBCore/SpecImplementations/PropertyDomainSpec.swift"},"region":{"startLine":1799}}}],"partialFingerprints":{"codehealthFindingId/v1":"27eaa75d50720d38041f1bd6f2125739c1b04495e70e0f04a9943e432e3eecd7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Rename this to DefaultBuildSettings for consistency. \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":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ab202a985b5160b711220e7cfa947370f47c8bb523b7b9d02b3791774eb9d36"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Once we have build setting operators, we can replace this function which creates the descriptors in code with the version below which computes a static array and defers evaluation to when the caller desires. \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":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"91319556fe0012e7cd02cb0cc2be9e7b55b8dd68000b37fc78cf9b763a0d9ac0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should really be part of the package type spec, not the product type spec. \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":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb44576b0c4eebd32330b58dc5dcdb166cf0b924856f1f3baadb4aa49d3148b8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Once we support build setting operators, we can use this version instead (and likely can remove the SWBUtil import for this file, since we won\u0027t be using Path anymore). \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":"Sources/SWBCore/SpecImplementations/ProductTypes.swift"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce858b6517215d17cf5f9d92c71a662640c3a8bb118fe7a965d99d00994bfd40"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should eventually become an 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":"Sources/SWBCore/SpecImplementations/CompilerSpec.swift"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc2f6104dab57d9ff824dd21544f100d48645a7e18d3eef7fa565923f487116f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: There will be others, but for now the identifier is the only one we use. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8256e1762ad2effc221437902741699575d39b54857cf11eef29f8437e7d9cc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /// If determineGroupIdentifier returned non-nil, that group will later be given an opportunity to subsume other ungrouped files. \u0060groupAdditionalFiles\u0060 should observe the \u0060target\u0060 group and \u0060source\u0060 groups to decide which \u0060source\u0060 groups to merge into the \u0060target\u0060 group, and return them as a list. (Although \u0060target\u0060 is mutable, it should not mutate \u0060target\u0060. TODO: Make FileToBuildGroup a struct?) \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d1d9d2ab57469d5e85ce87107356125f78efdf0c21b7a1f6509d7b685ed131f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note, this is only used by \u0027Ld.xcspec\u0027, there might be a simpler implementation. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"6784ff907267c22e890263e413ae29c2a396453c805fe48971df86db235cd57f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Factor out all the generic-only things into a mix-in. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"7beda2764613752e05fa3d2460b1930a219e629ecc0ac64856b5c450555c6357"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Force the specs to define this, instead of synthesizing it: \u003Crdar://problem/24544779\u003E [Swift Build] Stop synthesizing Outputs for generic command line tools \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"e268289228815c793298e645aa1f6139eceff2033d04f25ca588284f2db3f712"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This isn\u0027t used by most non-generic tools, but it probably makes sense to refactor them *to* use it rather than the other direction, for consistency. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":551}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa6c5577f9bd4ff43fafac1b536371625ef683f16b676d810d9fcfffe8c8ef7e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is supported for all specs, but the Codesign spec is the only non-generic tool which uses it. We should probably change it to be generic 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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":572}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7756caafb591ff6650bcaa52874922288ae4ee9bb0ddf7ed4218c4af4d9bdf4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u0022InputFileTypes\u0022 is the preferred key here, but a few older specs use \u0022FileTypes\u0022.  We should unify these, probably by removing support for \u0022FileTypes\u0022.  In particular, no spec should define both keys. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":610}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8e8c4792712a728dfcf03cb9bb8bd68e1fbe2ca42d9470439456338eac7297e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a string list. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":666}}}],"partialFingerprints":{"codehealthFindingId/v1":"516e45c82b226364c693cc2ba56a92f0d09ce9cb21c903e02c0c42ca9fcaef6b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This key is unused in Swift Build. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":675}}}],"partialFingerprints":{"codehealthFindingId/v1":"66f4bc945e05d34e81387c4ec371173dc66c397cc54c1a9d355042bbc763f2c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This key is unused in Swift Build. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":696}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5f658eb7008473512d4e57cac0a11a6ae895612af756e606432474c7f6ef406"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is messy, and confusing: the tricky thing going on here is that we have two different ways in which output paths are defined. For generic specs, they define their outputs using a key in the spec. For non-generic specs, they usually define their outputs manually *or* they use the defined output path which is provided via the CBC from some phases. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":873}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2685bb66f1f3f2cec623c82483f3401dde54f4ecad54ec798879242ec08c0af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is inefficient and not a good mechanism: \u003Crdar://problem/24644061\u003E [Swift Build] Move plug-in compiler off WantsBuildSettingsInEnvironment \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":918}}}],"partialFingerprints":{"codehealthFindingId/v1":"c98a141482e670e1fb250fffffcc0879d2530efb62e21a505ce9a0f343aadef1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: In Xcode, this is also marked as an \u0022auxiliary output\u0022, which we use in conjunction with the \u0022MightNotEmitAllOutput\u0022 flag to determine whether or not the tool needs to rerun if the output is missing. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1028}}}],"partialFingerprints":{"codehealthFindingId/v1":"18aec8201670bb0511cf65c4845e66e23ecb3936f98287b1e8c3e5520ad5b66e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement properly. rdar://problem/58833499 \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1107}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ad46fe781dac362e683a3b222d449ba31424641fe43cf92b249e1fd7bc3138b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement properly. rdar://problem/58833499 \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1971}}}],"partialFingerprints":{"codehealthFindingId/v1":"becf8bb34165d54e9181e758a88232102f16ac999b52e5fda228545df0f96970"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Maybe we should be able to use the workspace method for this 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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1123}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5de098e56f2239f6c129423d2727e000853e69b7ff1f0598c3f5983090b9f14"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should either require an execution description, or make up a better fallback description. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1216}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5a340b4976707d2dd184a3a77baddee3768ea3cac2be9e7a04583dcd98fc3c4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is really gross, and barely used. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1256}}}],"partialFingerprints":{"codehealthFindingId/v1":"89b44071be9c450dd7c5ce6640a9b51fcc6a6749f55a5cdd0eba49c100f9ba57"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It should be an error for this ever to appear in a spec which can receive multiple inputs, but we need to add that enforcement condition (see also instances in custom tools). \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1262}}}],"partialFingerprints":{"codehealthFindingId/v1":"59659ec4a081cb99d2c91f0187e92040152b384f3b3cb8abd6baa23ef6072b7c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to just move this to a specific handler for this first item in the template array (we could generalize the existing ExecPath key for this purpose). \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1288}}}],"partialFingerprints":{"codehealthFindingId/v1":"6acab6efad104694b94716cc15c4adcfa9dec93dad1cba7b5f87b1591f8d4ca7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Optimize the list to search 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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1350}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc9453912153d34774d0a2bae0c98fb0732a4c1de43c815ca0c7b74624f2d2fa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Optimize the list to search 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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1366}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c9fde2eacde386bae225789b85c6b4b91d5acce9e9229d4c11adb920d810784"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If we find any tools using this class which want to add attachments, likely this class should be enhanced so the tool which instantiates it can add the info at that time. \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":"Sources/SWBCore/SpecImplementations/CommandLineToolSpec.swift"},"region":{"startLine":1688}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4daff3b2f844af4fb632995a97dd98af834efe9c749fbc9f4a4e21ef736c80e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Clean up manual initialization of objects. \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":"Sources/SWBCore/SpecImplementations/Tools/ValidateDevelopmentAssets.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"3198c0b12c8d3bb5d4b04e5ce2a6401993199e4bf064944fe8d96bfb54c853dc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Clean up manual initialization of objects. \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":"Sources/SWBCore/SpecImplementations/Tools/CreateBuildDirectory.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"45bdec15cb62b13dee878d7e9ea1ea32eed5acd9de6ece841a6a8333e536bfed"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Clean up manual initialization of objects. \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":"Sources/SWBCore/SpecImplementations/Tools/ConstructStubExecutorFileListTool.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccaf558c0b1637b518883abd90ccc8d0f1d2998da9dd561d170603852c48625d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Clean up manual initialization of objects. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":2170}}}],"partialFingerprints":{"codehealthFindingId/v1":"40a9fca65a9e7946faf2a5f5d320c38c1e88ed61c15b8251fd24c6e83a53f425"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Declare a virtual output, or something. We need to deal with the mutating nature of this task. We currently just don\u0027t declare any inputs and outputs, but this command won\u0027t run in sequence properly. \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":"Sources/SWBCore/SpecImplementations/Tools/TouchTool.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"5773081a503d4bc11137080bd6ffe8220f0b8817b014ab4c2a39316fd0698936"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is just broken, but it at least allows the task to run. \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":"Sources/SWBCore/SpecImplementations/Tools/TouchTool.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3ff025901d672d9931ff0140a002bb02db70ce7720c147314f67349b5d3b396"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://57299916 remove this helper method once OutputFile and OutputPath are standardized into a single macro. \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":"Sources/SWBCore/SpecImplementations/Tools/TouchTool.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ea08f39ec4edcd65a994812268c95bbed46a2d80af249a8e60499ccb4ee45e4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is gross, but the way things currently work we can\u0027t detect during file grouping whether we have a single file or multiple files, we just have files which match the tiffutil spec.  We could potentially move this logic out of here and up into the FilesBasedBuildPhaseTaskProducer to examine the group and adjust the tool accordingly; that might make more sense, although it would require being able to mutate the group in that way.  This is somewhat related to \u003Crdar://problem/34717923\u003E Clean up handling of resource files in sources phase.  See also the FIXME comment above ImageScaleFactorsInputFileGroupingStrategy. \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":"Sources/SWBCore/SpecImplementations/Tools/TiffUtilTool.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"2deedbb84396a1283cfff2fe28a8df69137bac419f8a6c9e1a3bafb735dd4d1e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For now we try and hack it up in a way that works for the main use case (COMBINE_HIDPI_IMAGES): \u003Crdar://44623214\u002625099666\u003E [Swift Build] Implement proper handling of grouped file output paths \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":"Sources/SWBCore/SpecImplementations/Tools/TiffUtilTool.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc90f1e81daede4c9144ebf6ad78947446ce1c64e5a19006b6d2461f7c921a95"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Compute the destination path properly. We need the group identifier here, for now we try and hack it up in a way that works for the main use case (COMBINE_HIDPI_IMAGES): \u003Crdar://problem/25099666\u003E [Swift Build] Implement proper handling of grouped file output paths \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":"Sources/SWBCore/SpecImplementations/Tools/TiffUtilTool.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"57c79cc1373e317eac3284f2f5bfd7227f67b23da8524db4969100b16958bfbf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should go through the normal spec mechanisms... \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":"Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fd09445c6b251ae1e85593c311b09b7d2f97ee75b792516898a2d856b502538"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ideally this would just go in the spec itself \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":"Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"febcc5fce6889c7303296889ec11efa4b6b2ad99882a3b005fd41e610df17978"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We don\u0027t have a spec to work with here, we should get one. \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":"Sources/SWBCore/SpecImplementations/Tools/TAPITools.swift"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"6364b0aec7cf7987e066b8a8d6e2b25c8e55cb757492c5c782733e6a381a5090"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should ensure this cannot happen. (same as other tools that need extra input to construct tasks) \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":"Sources/SWBCore/SpecImplementations/Tools/TAPISymbolExtractor.swift"},"region":{"startLine":260}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e7d466d119fd61d657b200f8690f1e83ead457754753f38629630773788cdd1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Force a virtual node as the output, we don\u0027t have a way to model this yet: \u003Crdar://problem/28507165\u003E Need accurate incremental dependency modeling of Swift stdlib tool \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftStdLibTool.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b006d3b4522d556dc1bbe7529a04edf6d975994962de88fed6f6911447b4446"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: It\u0027s pretty brittle relying on this to exclude supplementary \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16d13a626124cd5d9004c51bc077556c2120f3bba28d7b669e13e41b5b8b7ca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Convert to bytes. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"70eee4f273ab0c22c3f0ebb79f49a8b0daa44a39d0cfe87d6ad508d80683bcfa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Convert to bytes. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":308}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a1c4cf9900af16e6fcb4b7141b4589da2a4c5668d2db02eaf38add5dccedf70"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Convert to bytes. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad289b452c88cc25a2b3d9e4584c3e78146032d671df6fda6e8192af8540d20c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Convert to bytes. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c4a415238e35651641af7cea79c93c379cc8e2751bc4ce2a412ecd1b02ffa09"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Convert to bytes. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"61a5d9fc5d5148619cc96470182c6c93d875f49210c966b63d56cf92fead44b0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should probably allow the specs themselves to mark options \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":809}}}],"partialFingerprints":{"codehealthFindingId/v1":"2241e773ce7acfbb0626efe128f07b96fe877c0d0c7fe961cd799121d94b3163"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should probably allow the specs themselves to mark options \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":895}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0db404e31886a86ff321ac9de000161a178dd9a2c985b5c1d6131f738bae7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The native build system disables running other commands while the Swift compiler is running.  Not sure if we want to do the same thing here, or let llbuild take care 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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1474}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe9e96ab70471f6673b3cf8891eb9a09b8fdc6f985f01fefe971e3452d95cb19"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Separate -D and its argument. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1773}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f3a14ee30dc59bd5af6ea1d1f800cb89ffa18908d350e9d9b08f23d722c7d2e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Separate -D and its argument. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftABIGenerationTool.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3d0cb477a6742a590c67ae30e6516721231706bd1bca9372820b1c5dfcd9383"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove -no-verify-emitted-module-interface once compiler \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1798}}}],"partialFingerprints":{"codehealthFindingId/v1":"20194bb9e3945b6bab7ccc7ce1a1af33a3478077101aa30dec271ae97ed8d014"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Emit a warning if there is no -target in the options. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1898}}}],"partialFingerprints":{"codehealthFindingId/v1":"af0eeab0a674bf7686da8883ad4c9e56a7d032496d3cbb39e0a2ce3990bc910f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Duplication with \u0060SwiftCompilerSpec.computeOutputFileMapContents\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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1992}}}],"partialFingerprints":{"codehealthFindingId/v1":"996092b71a05176866db553f58ccc535da0ea7a261896d989f50e6646e57d0fb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Duplication with \u0060SwiftCompilerSpec.computeOutputFileMapContents\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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":2133}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d01f630b8516c1c8cb90c62df9c8380273ca962255e51562328fda89950a9f6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Can we simplify this to not require the full macro 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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":1994}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bf90960adc2531564a374a1a4a60c2e5be9221bcef019e63ea6b312ff33eba8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: What should we do here if there is no normal variant? \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":2190}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e1bad58c41ef8b0a60747f3ab4702d6c960d49903920d1b9b61ab43ba1e6ba7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to be able to ask the product type here for the module map path, and whether to install the header.  This is placeholder code for 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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":2571}}}],"partialFingerprints":{"codehealthFindingId/v1":"932822136aaee7133f621b1349d20139b589f99b32d97a8e68e74ab3da83ea5b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We don\u0027t have a way to report diagnostics from here, 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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":2835}}}],"partialFingerprints":{"codehealthFindingId/v1":"db40b511ce21854394143b45e97fb99af55fac5ba9b9fa1f817560323be48551"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: functionality must be 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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":2860}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c9d42fb785e9f3ab977d406b66dd09e35c7b8e5b7a444583e1ba79e62314545"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We\u0027re sending an identical indexingInfo for each file, but we\u0027ll fix that when we can send a serialized strong type and either change the API to ([Path], Info) or (Path, Ref\u003CInfo\u003E). \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3146}}}],"partialFingerprints":{"codehealthFindingId/v1":"d675b91c026cb3b328ecbf839335693ffad3a6549eb2a1c0c47db2ccbebc5e2e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/41060621\u003E Getting the right uniquingSuffix requires having a FileToBuild, which we don\u0027t have here.  I\u0027m not sure whether ExecutableTask has enough information to be able to get the correct path to the output file when there are multiple input files with the same base name. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3151}}}],"partialFingerprints":{"codehealthFindingId/v1":"1362f3a12aae1640995d40ca604a623c85ca88f500d5979f9643ffa84b0dd281"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to add this flag into Swift\u0027s features.json \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3698}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb1f54b91c1e2e124f7fd9def90e9e2bd98166f75018a133efd4b78ef47f7d88"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Consider about reporting this as error, lest users silently get surprising behavior if we fail to read the features file for any reason. \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3703}}}],"partialFingerprints":{"codehealthFindingId/v1":"9036b7ff3551874f51eb1f30c70eff7fd96e033d5943f474f52d3e2f615426db"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/30939744\u003E Swift: Utilize \u0027-Fsystem\u0027 flag for system framework search paths \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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3751}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6550cf7f0834cc5f60f99f2f1e7d30b755ff8a0e4fde23ae4ed020a15b2c48c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should bind file type identifiers at project load time, and reject unknown 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":"Sources/SWBCore/SpecImplementations/Tools/SwiftCompiler.swift"},"region":{"startLine":3807}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e31240c579b5206b9fee43fc28ea7c3fc7dec1cbdf198a1ce5f449b91b2e437"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Detect the chmod flavor and conditionalize on BSD vs GNU instead of Apple vs non-Apple \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":"Sources/SWBCore/SpecImplementations/Tools/SetAttributes.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"f46cd9409c0b0c4cc73b59ad1f9f77713507af918af8ca1e183488c71690f754"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/29117572\u003E Right now we need to create a fake auxiliary file to use as the input if we\u0027re using the entitlements from the provisioning task inputs.  Once in-process tasks have signatures, we should use those here instead, and the task and inputs below should be removed. \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":"Sources/SWBCore/SpecImplementations/Tools/ProductPackaging.swift"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"94f8e7d8baf912113f98f5e6ca66e5c36a075f0f9fcf3913763e86e705edc849"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to add this signature info to the command once commands support signatures.  (I think we probably only need to add the UUID.) \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":"Sources/SWBCore/SpecImplementations/Tools/ProductPackaging.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"62401e0b9afbb9e67f6e86ec689edf2800d0451596fcc84c4f27d1aa1f86dbf2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Resolve this, and use the actual lipo spec: \u003Crdar://problem/24644883\u003E [Swift Build] Fix and then use actual Lipo.xcspec \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":"Sources/SWBCore/SpecImplementations/Tools/Lipo.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfb3e09a5a51895f52898dc3ff5d66ada46d58da91415380602a28dbdb97e39a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement support for the linker default paths if needed.  \u003Crdar://problem/34171003\u003E \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"241eb6193a2474b7f5be7c8793f64e2448d65a6d69c0e38d4a312329d7883da7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Implement support for the linker default paths if needed.  \u003Crdar://problem/34171003\u003E \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd044a82226a9694ae371b83af6eea9d88c4191638bbf573bfcb6826aabc1e8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Is there a better way to figure out if we are linking Swift? \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":363}}}],"partialFingerprints":{"codehealthFindingId/v1":"9dbeff5cf259f9ad6d0f8b926ced69b29c6736aa976511405a4f8a542a37fc69"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: When using LTO, keep an object file on the side to preserve debug info. \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd8d4f0c4970248f10b4909c3d578682bd61bbd99896f87de0360efd33b13006"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Honor LD_QUITE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER == NO ? \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":574}}}],"partialFingerprints":{"codehealthFindingId/v1":"16a77af8c4703f68fea1f87f8bf8ccb752aaea67d21648ce3d22b1c06274a0f4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out the right way to do this, going forward. Xcode does this by injecting build settings, but we don\u0027t have infrastructure for that yet. We could easily changed commandLineFromOptions to support custom overrides, if we do want to go that approach, although it might also make sense to design a more strict / efficient / type safe mechanism that directly allowed the generic spec data to delegate to methods on the spec class. \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":580}}}],"partialFingerprints":{"codehealthFindingId/v1":"40798021846667d2662ebb68dba453e3250e0adf9acba861c6dd1bb197531e9a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out the right way to do this, going forward. Xcode does this by injecting build settings, but we don\u0027t have infrastructure for that yet. We could easily changed commandLineFromOptions to support custom overrides, if we do want to go that approach, although it might also make sense to design a more strict / efficient / type safe mechanism that directly allowed the generic spec data to delegate to methods on the spec class. \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":"Sources/SWBCore/SpecImplementations/Tools/CopyTool.swift"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddf11d8ed8a4cfa08e6c9ef4abb7ccdfae43ab34fcbaf4e2131736234e3aa53c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These rpaths should be evaluated in \u0060computeRPaths\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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"897281601f305afbbf7907481c48a4a5fd43fcc8f5b62ffb105b31dc0f4577eb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Handle -bundle_loader as well: presently, it\u0027s often set to a path which has an ancestor that is a symlink node (e.g. $(BUILT_PRODUCTS_DIR/foo.app), making it tricky to track the actual underlying path in install-style builds. \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":931}}}],"partialFingerprints":{"codehealthFindingId/v1":"96b2f8db14a3a6b6417ec8d733a51614eb68b0912bf73020f21106eec980a125"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Handle the _library options, and also the case of normal linkage where there is no option passed, just an absolute 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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":1467}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c73a25e8230fa736ee707e20303c90125674e7a1c913f2e401be6d5cdd9d9e7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We could use something like the LibrarySpecifier struct to pass back something other than a literal string as the linker option, but it requires some more thought as the LibrarySpecifier as-is isn\u0027t really designed for this sort of use. \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":1482}}}],"partialFingerprints":{"codehealthFindingId/v1":"b19d4a9280232870d1214374f468104af663afd8f57ca1323bfe1b138017a9e4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: When linking with absolute paths, we pass the path to library inside the framework using the appropriate -***_library option (or no option for normal mode). This is probably a mis-feature, I doubt it is a good idea to bypass the linker\u0027s notion of frameworkness, but this has been the behavior for a long time and it\u0027s not clear that the linker provides us with a better alternative. \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":"Sources/SWBCore/SpecImplementations/Tools/LinkerTools.swift"},"region":{"startLine":1740}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a7132d43c74af1df1d6966be3371c5143d236d7669339b4ae1028e9156c14b1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out how this should work, when we get a better mechanism for binding specs to custom behavior. \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":"Sources/SWBCore/SpecImplementations/Tools/InfoPlistTool.swift"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5dbd0fd6a595a55ddd59f60232fb79ea5a583247278669e1fb72b3b91437ba4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need this, but there are some hard coded assumptions about being able to serialize task types 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":"Sources/SWBCore/SpecImplementations/Tools/Gate.swift"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"36ac0c038ad1e041219303acc593b39672f3673b66da8162a5ca71f014289934"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t be passing a literal argument here, that should be handled by GCCCompatibleCompilerCommandLineBuilder, but for Swift Build bring-up we need to preserve the ordering of -ivfsoverlay relative to the search path args. \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":"Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"f19567f68738ed0fa98c936af209582a0ebde90daabd957abfae0a14c6ed4ee9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should make Path be able to be used here, potentially using a \u0022path string provider\u0022 protocol or somesuch. \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":"Sources/SWBCore/SpecImplementations/Tools/GCCCompatibleCompilerSupport.swift"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"05e817e466a71a726358936591f38f2594f8d05d28b4d7482eb79b1e344f1a72"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should change the .xcspec file to make this setting conditional on $(PBXCP_STRIP_BITCODE).  Then we can just always generate this value. \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":"Sources/SWBCore/SpecImplementations/Tools/CopyTool.swift"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fb1fa6cdd66fc4e98d6a08a711dd1a1fda63fbc22ae921bfcaf40fe572f6ce3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/41991658\u003E Pass a lookup block to commandLineFromOptions() here which maps the build settings in PbxCp.xcspec to the parameters passed in to this method.  Then we can get rid of a bunch of the special-case code below which adds the options those settings represent. \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":"Sources/SWBCore/SpecImplementations/Tools/CopyTool.swift"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"2db65ce3d3e6bd7a902006505116055f0bd93a0ab1474bf2b97a54723d817357"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note that unlike the above there is presently no way to do this via the xcspec. \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":"Sources/SWBCore/SpecImplementations/Tools/CopyTool.swift"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"3066886c23b9a45b0c30b34d10e9bc658162fae77f846da05ba6bc8a72e29c4e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The same comment above (w.r.t. how to bind this logic) applies 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":"Sources/SWBCore/SpecImplementations/Tools/CopyTool.swift"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d965e364d89c2afab5856d0de8d3e825a27e37979feb338900ef0a6d6479dcf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We currently track the product to sign as an input, but this doesn\u0027t seem right given that the tool won\u0027t actually look at that? \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":"Sources/SWBCore/SpecImplementations/Tools/CodeSign.swift"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"a78db6b8905ba75d7c2edb08258befebf3291e212d3bb766464ceb2df1543b4f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we report an error/warning if we can\u0027t find the tool? \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":"Sources/SWBCore/SpecImplementations/Tools/CodeSign.swift"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"777ba415e25d3d0f0bcec486ed9b2cad241adbd4fdf7663e41399c0fc3f6c93c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode implements various checks here, and we should do the same.  In particular we should look at GCC_VERSION. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"2001ef129924ecff49bb9f36aeca99915b98ab074c34d8838a6000ffff196b8b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should report an error if we didn\u2019t end up finding a valid spec. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"b02922f32e124ae4af6c19a0e06f70c342c4fd9fda9d5d45986952267ed97205"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Report an error if we are ever asked to produce tasks 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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"10e690ebe1e13a0d63cb3454a69e35c08fe53e911643c7f846708d27dbcf54bc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should eventually just redefine this to be based on regular \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":514}}}],"partialFingerprints":{"codehealthFindingId/v1":"f52bf59cfedb7d6b6ba412e4a5d767ca4af6e4ee52211a16f09279c6e6b713d5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Disabled for now because some projects manage to end up getting here with multiple files. \u003Crdar://problem/23682348\u003E Project groups multiple .c files together for C compiler? \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1098}}}],"partialFingerprints":{"codehealthFindingId/v1":"59ce7737e45d82ffc3369ad641baa2b606a6fa8a88979b78984152a8b26e2256"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is currently possible to reach by putting source files in the resources phase, and Xcode has things that do this (maybe by virtue of being generated sources). We need to figure out how Xcode handles this and match it (or continue to warn/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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1105}}}],"partialFingerprints":{"codehealthFindingId/v1":"909021f6eed38941e00fe83a1f171785b738a17b35f0978f655c6289621eb035"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Diagnose invalid file types. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1116}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fe5f0b632df29f28e60c10ce1cfcb6fdc67c88c6a8fca41a364e1e01d87e60e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually we should just apply this optimization to all generic specs, and then find a way to piggy back on that. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1172}}}],"partialFingerprints":{"codehealthFindingId/v1":"188df19d0ba751568ea405294c3cabfd92e12f18215ac01aab5b413b7badf5f4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to add this, but it is not currently needed for the present milestone.  We will need to add some SDK APIs before we can do 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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1181}}}],"partialFingerprints":{"codehealthFindingId/v1":"74ad673efdaadfb77bbdec51e8b0895225058b9711593ee11e170c0d5f00d91b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We don\u2019t yet have the SDK API that we\u2019d need, but perhaps we should instead have the Settings object pass such things down through more general-purpose settings. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1233}}}],"partialFingerprints":{"codehealthFindingId/v1":"09a53d64c7ca6f5c4de9d0045d831475668c1974b115a5294050e24527ae2b5c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The way in which we do this right now is very preliminary. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1545}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fd3f93a9b4c6a4060bbfb860cd4dfb541fc56f4aff093498340c7cd95411cf0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to add the hash etc to 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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1592}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ff8d71f552ba41dd6e908cfa5795fbffbc86f85f87b387d56c47124dfcb451a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add the compiler version and target strings to the 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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1609}}}],"partialFingerprints":{"codehealthFindingId/v1":"4892dcc23f6dff6b588e1cf3d7bb106d38ca526fee1e3731e635fa3f0c3c0513"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Remove other compiler options that don\u0027t affect PCH validity, e.g. warning flags. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1611}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4c06ed76be5947605bf4dfb858725a4d1c20490ca3d20c3a9d41b0be393ef6c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Remove some compiler options in order to increase PCH sharing, if directed to do so by the target. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1613}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c4ba8a75cee26cf5ec262915427759b949388b4c7f167c04e1baae12de91864"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Remove some other options which we don\u0027t want to take into account for PCH validity.  This is somewhat magical. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1618}}}],"partialFingerprints":{"codehealthFindingId/v1":"860b1cbd41b5b1b110eb5d9559ab5f3d023e0417723e8ead6ff52ef81b6fd112"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a common case, and we should have a more standardized way of dealing with 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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1624}}}],"partialFingerprints":{"codehealthFindingId/v1":"127faecac2237c668c83949c5d7601610b75fa54e0c21598e4e23288e4020f68"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Also respect PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1632}}}],"partialFingerprints":{"codehealthFindingId/v1":"e387fc87c78ec5f78cace932d9954757f576989893195724aa31178503bc9912"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add MACOSX_DEPLOYMENT_TARGET \u2014 which is normally an environment variable \u2014 to the list of items used for uniquing, if appropriate. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1634}}}],"partialFingerprints":{"codehealthFindingId/v1":"367fdd1674015c1cbc43a2dcdacffacc7afcc01b8ac2dbd76f7556e1927685ec"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add the version of the SDK we\u0027re building against.  This way when a machine\u0027s SDKs are changed (a common practice for internal developers, especially those developing iOS) the PCHs will automatically be regenerated.  This value comes from $(SDKROOT)/System/Library/CoreServices/SystemVersion.plist  Note that this will even affect building against the boot system, which means applying a software update will cause projects building against the boot system to rebuild their SDKs! \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1636}}}],"partialFingerprints":{"codehealthFindingId/v1":"eea017d930b51cb1c9786f48877af3dc2742802d1eb28aaefe69508c691d022f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to be very careful here, we are still providing the build context for the current file, and the local scope. This means that the thing we compute here may depend on whatever target happens to produce it first, in subtle ways. We actually know this happens with the headermaps: \u003Crdar://problem/24605739\u003E [Swift Build] Stop sharing precompiled PCH files across targets \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1647}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa72e4e999975a2937fa112db9f977700f1334c0d78501e933878b365707b89e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to actually include a hash code, and it should ideally (for comparison reasons) be the same as Xcode. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1655}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0de41578f0ef98e94826a7be6cf7dce1870a5b49be26a1c63a9340d5e11522e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Disabled for now because some projects manages to end up getting here with multiple files. \u003Crdar://problem/23682348\u003E Project groups multiple .c files together for C compiler? \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1708}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c1531f07a7fe270c639682ed31a41c2d17a846c334c0fb7568c2fc6ad55f1d5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add implicit dependencies for the SDK. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":1751}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c5f9793fd52855854eeac075e8bacea880fe13436babdb28c0c4cec9c7453b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rename to VerifyModule once we remove the old one. \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":"Sources/SWBCore/SpecImplementations/Tools/CCompiler.swift"},"region":{"startLine":2280}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a0f45a2dca333cce8d8adb2a3c7730e17f9a4781baaf53db5a9d448dca6d3a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://119739842 (Pass diagnostic file path command line argument to appshortcutstringsvalidator) \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":"Sources/SWBCore/SpecImplementations/Tools/AppShortcutStringsMetadataCompiler.swift"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c5a10c22e4ac65817b7d78c582a331c73cd525445c6bce6453723784397ea09"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Remove once the feature flag is re-added to clang. \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":"Sources/SWBCore/ToolInfo/ClangToolInfo.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f6f76aa44c3fd2c5ae1fc2dcb7b815ff312e6f082f1014f5831aa328f671fe8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Switch this to building up a UTF8 representation: \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c9a748279dd2817d468d7b0a030e82a236c4aec3e82bc85e5b569d9fa5f3447"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Switch this to building up a UTF8 representation: \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"24f76ba33cb276ee14f798cc50b67eb6420495352ad65c7db06fa32bbeb8e7fb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It might be interesting to allow macro names to be evaluated as lists.  This would result in the lookup of each of the named macros in the list, in turn.  But it isn\u2019t clear that this is very useful, given that lists of evaluated values can just as easily be composed. \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fe842895cbb5c3f0b3595e8181f6121a89aec715e229e6ec1e2a43f4b164c11"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to compute the stringRep 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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"aec0ec350192c0b2f49c9ba9e31f54f3a609b3e7560b1cad64056d8d360dbabe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be more efficient to create the macro evaluation program directly instead bridging it through the quoted-string-list form. \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"485dd62cb187742f5c74ee50181d60fced348190f2fdaf90cf580be8b19f4be7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should have a way to do this parsing that isn\u0027t explicitly in the xcconfig file parser logic. \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":444}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0e12e93af2054f174e40228bdf04a60366ff04d5cff609dfd591f00be24cc9c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should eliminate this if possible, as it is rather inefficient, but it is widely used in Settings construction. \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":"Sources/SWBMacro/MacroNamespace.swift"},"region":{"startLine":472}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0804d8e6c5ab306d14b4f6e882abc356129681d2314549a44e2f32f83157a74"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we also warn about stray \u2018$\u2019 characters? Doing so would might cause a lot of noise for expressions that in Xcode work fine today (with the \u2018$\u2019 getting treated as a literal). \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":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a2a2e014658900aabc8366cb12075824581ea39a5b8f80e370ddd2abc907a05"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There are currently only warnings and errors, but we may end up adding notes as well, and certainly fixits. \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":"Sources/SWBMacro/MacroExpressionDiagnostic.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"a85ed23c0991ef70b3f39aa73f2f465c6af0f2770eeebe3ab163664bb1a5993d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There are currently only warnings and errors, but we may end up adding notes as well, and certainly fixits. \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":"Sources/SWBMacro/MacroConfigFileDiagnostic.swift"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"b48f182945cab96de307af41fe8c17295177a72d9859b96149867fc5e8f5c9f1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to leverage the cache within the macro evaluation context for expressions: \u003Crdar://problem/31108515\u003E Fix expression evaluation to not bypass scope evaluation cache \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":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce2c93a55133b3bf6a73444b252c8d08068df9151af0bc546d8c05b5d4fe4780"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to leverage the cache within the macro evaluation context for expressions: \u003Crdar://problem/31108515\u003E Fix expression evaluation to not bypass scope evaluation cache \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":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4651beae73a91051374b8ff4bd93b25a480e7333754e897ab979e14735898c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to have a more efficient cache here that used CAS to be more efficient than the current spinlock embedded in this object. \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":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"64347ebe126665f1544bf0930115c7444fef36a3a62918fe8dd304c56847ed4f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to have a more efficient cache here that used CAS to be more efficient than the current spinlock embedded in this object. \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":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"a863b71c4983a40733f118a5d4485d2d470e98733f30e2c8bb2fa3206b7dbd4c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to have a more efficient cache here that used CAS to be more efficient than the current spinlock embedded in this object. \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":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"757378b49e914ed090bb497de3a167a48545f069d8c283249a5af31380611fd7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to have a more efficient cache here that used CAS to be more efficient than the current spinlock embedded in this object. \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":"Sources/SWBMacro/MacroEvaluationScope.swift"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfcd25b4f3a80cc0d12d07ea8d6acaa3108a5a453bacf24fa5e20533b6916b62"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should also support literal string lists. \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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d2d87516d7540b7cf6f5aec17225912d1f8125e3e5ada9985a05eb0870e4232"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should consider making the \u0060preserveOriginalIfUnresolved\u0060 behavior deprecated, it is used rarely in practice and is mostly an accommodation to situations where the \u0060$\u0060 is intended to be literal, but wasn\u0027t quoted, and it just happens to work because the trailing \u0022macro name\u0022 is unlikely to be defined. \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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e546da777f5862754efff9ef039555f948d36af11e5cb3a0f195e7472fce265"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The check for \u0022inherited\u0022 here is suboptimal, and will be cleaned up.  Instead, we can detect the lookup-inherited case at the time we generate the evaluation program, and instead emit a EvalInherited instruction. \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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":354}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a35fcdb081a6d3b7146a216c3a65b506af7ff34642caa0a3c6b75ae3321d8cb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should pre-bind most of these, to avoid the lookup: \u003Crdar://problem/28689568\u003E Pre-bind macro declarations during expression parsing \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":"Sources/SWBMacro/MacroEvaluationProgram.swift"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec3bbc8e7f1349c6b87f2ce01a130d84e7b5df15cda2e1af8bab4204ec719957"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be great to not have to provide an implementation, in order to make this class abstract; we cannot use protocols because then we couldn\u0027t use MacroDeclaration objects as keys. \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":"Sources/SWBMacro/MacroDeclaration.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"7269cd895ce60e11b1d1076a7bb9f2aade8b42bec29171364fb041a1c98c81e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should really handle escapes 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":"Sources/SWBMacro/MacroConfigFileParser.swift"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e74c10b6503d2a05e6fe8d9aa64e43a61b68a6e6532be8629a3bd22e0bd7aa7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Passing an empty path here is bogus, but is needed because there are presently clients of this method outside the xcconfig parsing machinery.  Since our delegate never uses the path, this is okay for 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":"Sources/SWBMacro/MacroConfigFileParser.swift"},"region":{"startLine":552}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c132740277dc20759757f7c0f49ba4a49a0173ef1e7a989328b43aed5384e02"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Relational expressions were not implemented in the native build system support for macro condition expressions, so they\u0027re not implemented here yet either. \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":"Sources/SWBMacro/MacroConditionExpression.swift"},"region":{"startLine":219}}}],"partialFingerprints":{"codehealthFindingId/v1":"ade9393c1f44b4114cf5679f2fe1a27e3d5d993feeeebf00306bd1695c4afc13"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Keep for ABI. \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":"Sources/SWBProjectModel/PIFGenerationModel.swift"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"de45da852bee344be64a4035cd4a0c48b4e63e4c821cedf4ed1a87cedb0df66f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need real logic here.  \u003Crdar://problem/33634352\u003E [SwiftPM] When generating PIF, we need a standard way to determine the file 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":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1e5755b13c31852caf21c4b9a9bb9d951e89089cf9b5b28e457cfbe70957103"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need real logic here.  \u003Crdar://problem/33634352\u003E [SwiftPM] When generating PIF, we need a standard way to determine the file 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":"Sources/SwiftBuild/ProjectModel/References.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"58bde54495c919f47d4fb451bb8bc2ce808d9871412b26aaf8ba16e35dbf951b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is probably now more important because of resources support. \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":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"39e950b6979b3a001e1f150153c72a601917538b94232322e54af49c3bec363d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is probably now more important because of resources support. \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":"Sources/SwiftBuild/ProjectModel/References.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d26b1edba8c65a96dc7163dae49bd8c9b80064a22f85a73961a0686c52b660d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need a real solution here (or: could we not omit the file type and let it be inferred?) \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":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"19f9b5bce6eb910a3f30269af0bf138a3731a23b8b4e7e77724eab8f4ed8ce8d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I haven\u0027t found a way of distinguishing a value of an unexpected type from a value that is nil; they all seem to go through the \u0060default\u0060 case instead of the \u0060nil\u0060 case above.  Currently we will silently fail to serialize any struct field that isn\u0027t a \u0060String\u0060 or a \u0060[String]\u0060 (or an optional of either of those two).  This would only come up if a property of a type other than \u0060String\u0060 or \u0060[String]\u0060 were to be added to \u0060BuildSettings\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":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":408}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e0b2efce2e64bc1d7efb0826b14192de474077fa56ae19adc6b1e9960599511"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Otherwise we get \u0022Closure tuple parameter ... does not support destructuring\u0022 \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":"Sources/SWBProjectModel/IDE/IDESwiftPackageExtensions.swift"},"region":{"startLine":413}}}],"partialFingerprints":{"codehealthFindingId/v1":"b976900f45f46186f861e5288e7ecb422e3d6c7e49743194431606def8e0ca14"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME throw an 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":"Sources/SWBProtocol/SwiftSDK.swift"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"30955ba7ce1bd9a48e4be79bc604df05a9eb67701ff88d35721e1e7cf145c1af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/40036582\u003E We have no way to handle any errors in PropertyListItem.asBytes() 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":"Sources/SWBProtocol/PlanningOperationMessages.swift"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b0a4685afd219277680a26370f0724c626ebbf2e9993be14fb1ecbea290ffc9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/40036582\u003E We have no way to handle any errors in PropertyListItem.asBytes() 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":"Sources/SWBProtocol/PlanningOperationMessages.swift"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"67251eac9841c95cd24a7f4bbb7c69f8722938c413cba6b003db77095866ca16"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/40036582\u003E We have no way to handle any errors in PropertyListItem.asBytes() 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":"Sources/SWBProtocol/PlanningOperationMessages.swift"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d9b7c200a1f2299b65ff9f4e1265a4e6fd9882035a1bebe0845fdc93a2cea50"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/40036582\u003E We have no way to handle any errors in PropertyListItem.asBytes() 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":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":399}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c5605654334e83cc46c4e9e73f4cb314a9ede1426b6c3f3d42f5842a2d629d6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to send the substantive data (build settings, etc.) to the client so it can generate the inputs. \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":"Sources/SWBProtocol/PlanningOperationMessages.swift"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"abf547c72389ab2b046008e0dd9cd7e6305560401c484fa792388dfbc88cd5fd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is just a stub at present - it just contains a (meaningless) string as payload. \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":"Sources/SWBProtocol/PlanningOperationMessages.swift"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5af7c279e6583c43d2aba50f52a79ecae9e7986ff9f672860f789ecf4f9f81d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Use a better type than String 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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"403b9813f69a93a0be6daf3e162fb55cde2f395307b95218bfd5978a8267cbd2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Avoid copying here, we should be able to decode slices. \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":"Sources/SWBProtocol/Message.swift"},"region":{"startLine":1014}}}],"partialFingerprints":{"codehealthFindingId/v1":"5aeefef11f887677aab570f458dc2a3877c84e9218163a5460c30c31a52484f6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: A future commit will use a stronger type here (e.g. SourceFileIndexingInfo) \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":"Sources/SWBProtocol/IndexingMessages.swift"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1f9975c04af19e217750ddcd255e7e0cf709d92e76a9eb823b965cbae3f1d6c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Re-enable usage of task signatures after addressing the performance issues. \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":"Sources/SWBProtocol/BuildOperationMessages.swift"},"region":{"startLine":880}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e254f77c39463dd75b6ea56bbbca967cea84d1f67fee393a7aef659b1a0dca0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Split apart the location and message. \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":"Sources/SWBProtocol/BuildOperationMessages.swift"},"region":{"startLine":1232}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb7fc599d62da3d2454b1ba40f44cdbfc4ccc3d9b9a4670b6863c08cd1565164"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a MacroExpressionSource. \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":"Sources/SWBProtocol/ProjectModel/SourceTree.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bb8e5c419b8bd12be17aa9765c6c7933a628885cfdaf853669fa029952190de"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a MacroExpressionSource. \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":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"693e9736268492bae460e419b31477110c6676d4a98466392a72641ee827ac8b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should consider if we can deprecate the ability to expand macros in the patterns. \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":"Sources/SWBProtocol/ProjectModel/BuildRule.swift"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"62686ebe9a12dc7561eeb107015adfafc08b014a16c092d18af51935c959f592"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a MacroExpressionSource \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":"Sources/SWBProtocol/ProjectModel/BuildPhase.swift"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"4708c09861702b4345aa6a2967324ea4f5705263e96f49c4ba715ba03c22fba5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Change this to an Int once we don\u0027t need the rawValue initializer elsewhere. \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":"Sources/SWBProtocol/ProjectModel/BuildFile.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"4af65dbf239a4a706bf3020777cfa439d091d2f0b772c219fd7ee705bbce4d98"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Change this to an Int once we don\u0027t need the rawValue initializer elsewhere. \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":"Sources/SWBProtocol/ProjectModel/BuildFile.swift"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab7d7705f3fcbd3b093d1616c0435ec3e558a45bd78505bfd371aca357fd2642"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: pc for x86_64! \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":"Sources/SWBQNXPlatform/Plugin.swift"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb179aa4f7ed97595bb5b36560337e3996af99f650cd1138f03bc636c3386ce6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We may at some point need to coordinate with outstanding work. \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":"Sources/SWBServiceCore/ServiceHostConnection.swift"},"region":{"startLine":202}}}],"partialFingerprints":{"codehealthFindingId/v1":"6491241ea5fccc28297bde0ec76bbb3665c828e78c89e450a583e0f2b3e8ac4c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should switch to using Dispatch. \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":"Sources/SWBServiceCore/ServiceHostConnection.swift"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea2903cea9b60f8b2645a50e7c23c5ce3e7622ad7b525d0c998683d067a2b335"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could in theory encode directly onto the stream. \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":"Sources/SWBServiceCore/Service.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"5220c5a1ba83e3f8dd01d23ad010117b58b26d3f0952d01d6b77d4b80ab569ed"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could in theory decode directly from the stream. \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":"Sources/SWBServiceCore/Service.swift"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"e55ee42e8f20eb50b2502a1ecf7c8708ff906dbb2f6fdc4e14f6235481a23054"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We may eventually want to explicitly track deferred requests 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":"Sources/SWBServiceCore/Service.swift"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"938ba289ca04262639894f19f4399643ee569077122d6a540dd55f7226818ec5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://87285630 (User script sandboxing: network requests) \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":"Sources/SWBTaskConstruction/TaskProducerSandboxing.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"f27772fcd05f11b982b346c60b60df404000e53f5b697940861d3f33a5945ef1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we should investigate whether to just push this concept down into llbuild as a first class feature. That might be simpler, more efficient, and more convenient. \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":"Sources/SWBTaskConstruction/TaskPlanningDelegate.swift"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1dac6381cad5582a30ff4a0a4972ebef25cb6c9be29692ad9e70ad058396a6b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Centralize this in TaskIdentifier somehow. \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":"Sources/SWBTaskConstruction/StaleFileRemovalContext.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"216080e123dbf8474d29a66fc16b623d4ad81d4f026b9eb7996a5fd2f0a1a839"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should have a better way to map these to targets/products. \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":"Sources/SWBTaskConstruction/DiagnosticSupport.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"97166f70f00bde0bd34782552832ad817a2afffc89de7cbcbb9140a4efc05697"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Either each task producer should get its own file path resolver, or the path resolver\u0027s caching logic needs to be thread-safe. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlanner.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8613653fa08819d025f7206ef8105b2afb7f30f13e1e3099877e9881095e687"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Either each task producer should get its own file path resolver, or the path resolver\u0027s caching logic needs to be thread-safe. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlanner.swift"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"89760d91b1c20855284be8210cb9b66035dd8a2622c00ef09f67b33dcc2ea561"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out how to represent targets which don\u0027t have a product path (e.g, aggregate and external targets).  Maybe use their PIF GUID? \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlanner.swift"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"09521d79218bad7fb8700e6863d58ad9fa8186c1b877341598360f26eaffb35a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Refactor output file list parsing so we can call into it 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlanner.swift"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"18afc78a023a07feed6523f0bade7924d11086cd7c0fde4239244da8ac833bad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Some of these task producers surely need to be ordered with respect to certain others, while others don\u0027t need to 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlanner.swift"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"aced996d1b3e9f4deeaf89d8580a3e6e57e785a3a8b4408a7f3c9307921515ce"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should probably check that only build phases useful in an aggregate target are present 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlanner.swift"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"3154ce6a89d33e4c06c7678a3801caa0537347cb125855e204c1e8a0fb95c8ad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/28303817\u003E [Swift Build] Produce VFS as a per-project task \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"06adf68ac5f465378c8093f536bd6eba0f34aa1beb6ed1d9afc68ceecc5b995a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove the fileExtension check once SwiftPM has been updated to consistently set the file type on artifact bundle references in PIF \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":617}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4761912f3b0735828461ddfeed9e81a19bad33a91f0c8e1433871aee6838610"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Reevaluate whether or not we should cache all of the things we compute here in the workspace context, that may lead to more memory use than it is worth. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1344}}}],"partialFingerprints":{"codehealthFindingId/v1":"e16e202f430c211f6ddf778b368acc29eb654023f2476d8ad0933babfe3c996f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find the \u0022best\u0022 configured target. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1353}}}],"partialFingerprints":{"codehealthFindingId/v1":"692b52a1ca80c5f89af60b3c1195868ec2c0f1ef3ae87066639c476f1de0eb40"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make efficient. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1355}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7afcd67ea9a2cb8d396689e3ae0d743c4e72bf8780030f3b375f15f8d81decb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We can do better than this, we probably want to match certain things like the platform. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1367}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ba0ffa49c754f6d2f3f4824d28a6bf7f5f6b78b1848e9cb0346526e0000cd14"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should we care about caching this ConfiguredTarget? \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1369}}}],"partialFingerprints":{"codehealthFindingId/v1":"68e6da35c588c1dfc1b78094123b495fe1587dde881b23a555eecbe7f48f7201"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is another client that would like to be uncontended on the computation-for-key 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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1377}}}],"partialFingerprints":{"codehealthFindingId/v1":"c203ec0948890e63e768688220b5b5882fcf6a1f7247426a8c14942f45100b82"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to cache this, and record it to validate the build result. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1403}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef17014ffa2f6179eb80755a3701ebc078d65d6924f76688d47ae239fac36b93"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We currently ignore recursive search path expansion warnings. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1406}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6f38db469a18ee4678eb0db90718e9bcea9205980da728c6ede2c6a9f1751d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should just merge the ModuleInfo with the ProductPlan: \u003Crdar://problem/24843930\u003E [Swift Build] Merge ModuleInfo with ProductPlan \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1428}}}],"partialFingerprints":{"codehealthFindingId/v1":"272c4de9ba383813c9ea3ca7e3ab0b7b6a517aba36cc6c67864da5ad32293d7f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Parse the contents and add the module name to \u0060knownClangModuleNames\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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1515}}}],"partialFingerprints":{"codehealthFindingId/v1":"28514f44cb50d37b2847729e1fbf71b03dbca8b06a8bd34e0d8e25670840935e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If the modulemap already exists, parse it and add the module name to \u0060knownClangModuleNames\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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1521}}}],"partialFingerprints":{"codehealthFindingId/v1":"4356a1a78c0c06d671adfb9e09cf019bc5cdf74ab884a302c29d8ec83a212370"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If the modulemap already exists, parse it and add the module name to \u0060knownClangModuleNames\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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1546}}}],"partialFingerprints":{"codehealthFindingId/v1":"98bffa408617e2a7441883b285c53ebd23fbf5a33c9fb118e354492ec950637b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This does not belong here, but we currently need it to communicate the list of all actual tasks to the info. \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":"Sources/SWBTaskConstruction/ProductPlanning/ProductPlan.swift"},"region":{"startLine":1708}}}],"partialFingerprints":{"codehealthFindingId/v1":"29cae4c49d757b4c1f8fa6be1be7825316df93e7f66d48a0983d256acac3a843"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There will typically be a dozen or more task producers which share a context - all producers for a target share the same context - so it would be nice to have a more direct way to get that list than 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":"Sources/SWBTaskConstruction/ProductPlanning/BuildPlan.swift"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"f338b445b632b3bd2057824d27cd38ed797dbbf0e9e75756dc916770dfab5ca8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could cache 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"a76f14ee952bb27056637b0acb370e23e2c335527f32215b38d53ff833cac819"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This probably should be an error, since the only case where the above calls can fail is if a spec is of the wrong type (code error) or fails to load (code error or potentially an Xcode installation issue). However, since projects could theoretically be relying on this behavior, we\u0027ll avoid changing it for 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"99e7ff166fda3ab53438bf0bb9745e2ea38ee1d40456fa5c848aa8c4fb15832a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These should really be bound even earlier, like in the spec cache. Or at least, we should throw here and just produce a dep graph error if any are missing. \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"71928ba2f11bfe5bb583a7fb1c8320e14bcc9d3bd9eab39a1dbe18d65963dd34"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/30298464\u003E This is something of a hack.  Uses in the ProductPostprocessingTaskProducer say this should be expressed instead on a check against task validation criteria of the product. \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":742}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ded02dd1348024eefbf47ccb61a8e38dc49b76ef0e9134c2fba69744bff88d9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is nasty.  See SourcesTaskProducer.generateTasks() for handling of GENERATE_PRELINK_OBJECT_FILE. \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":788}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ed1b5d9247bc1c676179c8f07213e748c90c10ec613118f81225d1eec6f73b3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a rather gross way to collect all of these tasks, just so they can be added via the \u0022TargetOrderTaskProducer\u0022. \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":911}}}],"partialFingerprints":{"codehealthFindingId/v1":"6299e516753274cea46bb21f42306d3f35d10f856289415cdd504a67fe09b042"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Semantic build file locations end up going to the General tab in Xcode, but here we have our first use case where we ALWAYS want it to go to the Build Phases tab. \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":985}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3b3d5e9614eafaf0c7bbc5d6d87916d40c5e16aac4da930e2a603d0e3fecb2a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: What we would really like to know is if this target contains tasks which produce a .swiftmodule output. Seeing as there isn\u0027t currently a facility for doing that, we approximate by checking if the target contains any Swift sources. \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1373}}}],"partialFingerprints":{"codehealthFindingId/v1":"b23d24ffe71761ac5e3b7bd3f9019986c0c230561d4b072a4af62158d6a10883"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There can be multiple compatibility archs today, but figuring out which ones we can use is out of scope for now. (Compatibility archs were never intended to be used the way we use them today.) \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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1398}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9995cb469845ffa6dacb5fbc9c5e3b081e05e6c8638eafd540cc8c1ca7cb016"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Various types of sources which generate code that doesn\u0027t export any symbols could probably be added 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1506}}}],"partialFingerprints":{"codehealthFindingId/v1":"0449cf1370053ca686887e45786389e0fe3e6a3610e2644fe5dc63157404b7ed"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Depending on the contents, xcframeworks could be included 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":"Sources/SWBTaskConstruction/TaskProducers/TaskProducer.swift"},"region":{"startLine":1548}}}],"partialFingerprints":{"codehealthFindingId/v1":"446752c2874879f9a9097b985123606065fa3d735083b42cdc60156b5d321f50"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to avoid the return argument here, it is very rarely used (just by the clients that do reprocessing). \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":"Sources/SWBTaskConstruction/TaskProducers/StandardTaskProducer.swift"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"951a17340ac875de1df20c86de7a70d26026d02d64f4c8113fbab9f1096572c8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need a good way to make a unique -- but stable -- node name here, even across configured targets. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc40edb9329883bbd6ae82c65d119928d2c85e8660a23eb119d0e4d36e7281e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode uses the filtered references here, but our implementation isn\u0027t yet factored in a way we can do that. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1c5fa411732720bfe4a778b16503328d5d1d5c183bae0fafec4059fc1401680"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Possibly this algorithm should move to looking at TARGET_TRIPLES rather than ARCHS, but there is likely some work to do there as initial exploration indicated that the Settings object for the referenceTarget ended up with a surprising set of triples (for the same set of architectures). But this likely won\u0027t be necessary until there are clients using triples (rather than component inputs) which go through this code 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":425}}}],"partialFingerprints":{"codehealthFindingId/v1":"7880fc4d535b485dbb93dc443915b967d23a63535059ae15a98aefa8e1b118fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The \u0060settingsForProductReferenceTarget\u0060 call above should always find settings for 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed212125f5b46e23a4f3f2b9eeef6754d5323f250fa9de20c0d27ed448e6ff07"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Error 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":805}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d7d96e7ee27cfd637119bc8e0d13e52c86e4a09a5ab7f14acfe917e118d0b33"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Error 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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":1041}}}],"partialFingerprints":{"codehealthFindingId/v1":"1359be88e170695f6ccd980caec0bb755fb64a1668fca665014bcd1754bb6959"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Actually, we can limit the \u0022API\u0022 part to just when Swift API is installed: \u003Crdar://problem/33735618\u003E [InstallAPI] Avoid headermap / sources task construction when Swift isn\u0027t present \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":846}}}],"partialFingerprints":{"codehealthFindingId/v1":"848e51bb63bb749845e141cc85990b52ca1f12a5345cc9a030fcdbfcbba8f525"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should do this in parallel. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1003}}}],"partialFingerprints":{"codehealthFindingId/v1":"af8274a0f1bf7c576825af83a27bf8659016a464879b1da5010b51be333f0f77"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should do this in parallel. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1426}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf7f1b97fbc5f9beb2dd683ebe0f9ce67f9fc3261356ef311f83eb1444cafff9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to do this in terms of actual file types, once we get actual typed objects as the outputs from tasks. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1045}}}],"partialFingerprints":{"codehealthFindingId/v1":"c54a351a278ac76a8ce836d1cfda0e77121ffab8b21594817396e6b3d5850916"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be more consistent to put this in the per-arch directory. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1063}}}],"partialFingerprints":{"codehealthFindingId/v1":"8048af15d257883a86e65ae79ddfa02189e0e99334ea81918a4cccb01bf667cb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There may be legitimate reasons why a library is being reexported but shouldn\u0027t be copied here.  In the LibrarySpecifier we should capture whether it\u0027s a mergeable library and take that into account. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1674}}}],"partialFingerprints":{"codehealthFindingId/v1":"020d409b572e045faaabd60823769947534376b151d0792babd4d8e164aa668c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should unify this as much as possible with the logic in CopyFilesTaskProducer. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1712}}}],"partialFingerprints":{"codehealthFindingId/v1":"890599d26fb4eedb7800dfa5b839648f8330aac7f67dd17b372e434ea763348c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Perhaps knowing \u0022does this target link this XCFramework\u0022 is something that the GlobalProductPlan or XCFrameworkContext should know. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1760}}}],"partialFingerprints":{"codehealthFindingId/v1":"52583684914c9b11fa752549ff17f629151f6b1eb74d4c6e317063986a286b38"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Perhaps knowing \u0022does this target link this XCFramework\u0022 is something that the GlobalProductPlan or XCFrameworkContext should know. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"28583f322a092f6ba1e337c5100586265ab44fc032f75af8ff13455691fdd35c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Emit a warning 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1900}}}],"partialFingerprints":{"codehealthFindingId/v1":"34e9e69cc59fc6dfcdc26b0c0f78fd3c5a722f3b4adb264965269dfccc2daf15"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Emit a warning 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1911}}}],"partialFingerprints":{"codehealthFindingId/v1":"60358cc3b438c0e3cbc272caff4a5d442e87fc0f25166e93405e419678a30180"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: At some point this could probably be handled by the build file \u0060shouldWarnIfNoRuleToProcess\u0060 property. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1957}}}],"partialFingerprints":{"codehealthFindingId/v1":"870f062e822369cc1e2259461bee291b4f6e89a15c05e7119b4cca0f3cc67f8a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Don\u0027t warn about headers here, they are commonly generated by rules which produce generated source files. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1964}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbaa0161eb58247bb9543fbf02fc29f3fca923a6944e100444a0a3aa686f5c3f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode is willing to add certain types here to the things to link (object files, static libraries). \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1967}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9ae12704aa3e0cd8e9deaea1775920a664a0c163566d47821c09525195df4c8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make this data-driven in the future... \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":1972}}}],"partialFingerprints":{"codehealthFindingId/v1":"746b8662d5255ed4534c41b70d289c1f75ad30cc7af50c9c9a7c6abc64ee70bb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make this data-driven in the future... \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ResourcesTaskProducer.swift"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"044b23e157a85b2433020773b2323f62f49e5f49d07480114b64356d09af52c7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to factor this along product type lines. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":2239}}}],"partialFingerprints":{"codehealthFindingId/v1":"50538b7fd1d30a060f5d5671d0c13268082d2453bf7d56623280601dea4d9095"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There is similar code in \u0060ProductPlan\u0060 and \u0060SwiftStandardLibrariesTaskProducer\u0060, this should eventually live in a central place. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/SourcesTaskProducer.swift"},"region":{"startLine":2401}}}],"partialFingerprints":{"codehealthFindingId/v1":"2982e638197455acc127ab5ee64141b9d8f65248331bdb6f97d7d18081292c44"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to \u0027normalize\u0027 here, the nodes should handle it: \u003Crdar://problem/24568541\u003E [Swift Build] Support node normalization at some point in the build system \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"d504b5b94c9938d1fb8cb4ecdf9b615361da970919bee409b2b545ac6036b435"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to \u0027normalize\u0027 here, the nodes should handle it: \u003Crdar://problem/24568541\u003E [Swift Build] Support node normalization at some point in the build system \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aad0a739768712a96880bdb8c4295dd7f72481e059c52c9fa0d23046f1480b2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to \u0027normalize\u0027 here, the nodes should handle it: \u003Crdar://problem/24568541\u003E [Swift Build] Support node normalization at some point in the build system \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"da227ee7040ac453536c39fada29176f674669ff72eee012426904a609ab1339"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to \u0027normalize\u0027 here, the nodes should handle it: \u003Crdar://problem/24568541\u003E [Swift Build] Support node normalization at some point in the build system \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a28eb040c5a66c0c018da071f7d219840b975f2ffdeb4f47f59c67f1963c73a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We shouldn\u0027t need to \u0027normalize\u0027 here, the nodes should handle it: \u003Crdar://problem/24568541\u003E [Swift Build] Support node normalization at some point in the build system \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"fec1142abdd13c640af2f1cec582a4ce0434ee528cdc33d4c43ebe0e6fa8604b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The quoting here is wrong, this should be a string list and then escaped as such. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"62f220a59e8211606ddfb577fb8d9b27dfcc9d7d703d322ef829123257a1d28f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t match Xcode\u0027s behavior yet, we need to always run the script if it has no outputs. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fa1d5e0b905c6342e843c4f018f9149e9179361c74b91d547bdcd3b270abe2c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should move almost all of the logic from this method into the task spec, and simplify 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6dd030bb884b0ae6363a28a21c72ce3d170291bc13b0dbb135a463ea5fc496c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should move almost all of the logic from this method into the task spec, and simplify 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"8032d2547493e865d3558fd69b3b1b6069b1341a318f3cf3434d728302ae8eb5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should move almost all of the logic from this method into the task spec, and simplify 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bcc13ff777bb33663074f339de5bfe1852c15ad282109c6054f330d6dce82c7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need the model name. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellScriptTaskProducer.swift"},"region":{"startLine":324}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4b0ea37279e35f1f14983694064f1c3c585ed7698b1ba930794b42d4a1ba033"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://problem/40458171\u003E use the file system error object to emit a more informative error message \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ShellBasedTaskProducer.swift"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"169307eaa94172dbcbf59cda6edfb41d6b4a9cd96a039580ce6cb42f86485f9a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // This task construction needs to run after any actool or resources task construction which may update context.onDemandResourcesAssetPackSubPaths or context.onDemandResourcesAssetPacks. TODO Should adopt Michael\u0027s new task producer inputs/outputs mechanism 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ResourcesTaskProducer.swift"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c7028c658e058f198ace6a379d748024fc2831194df52cf595647c036250f1a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Get the constructed tasks out of the call to \u0060constructTasksForRule\u0060 and use their output paths directly. The asset pack just needs a relative path from the output to itself; the file _name_ doesn\u0027t matter, and for now we can just use \u0022.\u0022. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ResourcesTaskProducer.swift"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"f33449718e810ed2343b17a81df5e58b84e7a74d405a267f1ffc1c0cdb623801"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out how this should look, maybe clients have to produce the fully formed output, instead of inferring 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"96a3600d9509638ebffc7209fd30f51b660910c5a68ac6145bf41916c394d972"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be better to have simple heuristics for ordering these groups, but this logic was how the old build system worked. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"77d7a60180b73d89cb677da62953ac146b594cf1e0b1b274effedd3bd6d0b4ab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Factor this out, and make this machinery efficient. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"574724d953e10d5bc88aff31ca3eed1611353dccc0b51bbcfa5d81b936f10115"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should cache this, for phases which iterate over the build files multiple times. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":426}}}],"partialFingerprints":{"codehealthFindingId/v1":"eee7fdd2a50b078eb09b013868c487f14b2ba0c4f999bb819aa4e9c238eb0085"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a very invasive way of handling the problem that variant groups can be built both as a single item (XIB \u002B resources) or as an exploded list. We should push this higher into the model, or lower down into the actual rule. Or we might be able to just always unwrap if ibtool doesn\u0027t need combined compilation anymore. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"8da13faf579edbc819610addd7137488f42ff6af8860a46dccd993bb7c20cb20"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It\u0027s only valid to have a single item in the variant group for any given localization, and we should emit an issue (an error?) about that.  (It seems hard to get into that situation other than an SCM merge conflict.)  Also maybe emit an issue if there\u0027s an item in the group with no localization. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":505}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ed97919616a65d303ca40188f8b378b9cef4526e30c54dc9a3b8cf222c76636"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If there\u0027s something in the variant group that isn\u0027t an IB document or a .strings file, then what should we do about 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":519}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5506d906eedf445c0f22676d088cecb9ec429725b91f2e2b07b4d3160301835"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If this isn\u0027t a file reference, what should we do about 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":523}}}],"partialFingerprints":{"codehealthFindingId/v1":"4100b66f7b21c9c1bb27b0310cfdc5f9b64d8178bbfb6334631e0ab609011adb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is really nasty - we\u0027re relying on the fact that any localized .xibs in here will be skipped.  But there\u0027s no good way to create a new VariantGroup.  It would be nice if we could just extract this out into a FileToBuild and not have to pass the reference around. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"69379f87f27aa9fb78f5c8b17fefe9e2a96e76062e5b1d4df811251896321fb4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should really be pulling the framework out of the debug location. However, due to the complexities of dealing with multiple actions that can produce these across various targets in the workspace, and attempting to order those correctly, this pulls the data from the xcframework itself. This is will only be a problem when/if we move to having incomplete xcframeworks that we can build up. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"6384bbf71daaec5aa7cc8d75dc1a5861be3f359a85e0f4ebffb6eaf76004ac36"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We only need to do this for some phases, we could avoid doing this universally. Investigate if there is any performance win in that. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":658}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bac80b849086201e81478e647ebcc873ae277e7f27487350dfd29fa36911c2f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Do this in parallel? Must document contract to clients if so. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":729}}}],"partialFingerprints":{"codehealthFindingId/v1":"7255009dd29905da47695a6aa194a56282d494007530ae7b198f1bcfd0cd480c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be nice to make this consistent and just have everything go through the rule based 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b38184c65b66b32a4c88e4421228fb14dc5952b16cf04ad13d96532ab6b09e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want a model where these feed cleanly back into the group processing logic. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":806}}}],"partialFingerprints":{"codehealthFindingId/v1":"4187e3002f005a5cd194f98f51c3f974d2aa1fb4a9c978bb0d113aea41e58e03"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This applies to all task producers because the Metal linker expects it (in the Sources producer).  Consider a more general approach, e.g. any file in the product should not be reprocessed. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/FilesBasedBuildPhaseTaskProducer.swift"},"region":{"startLine":906}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0b2e3147fe62626854eb4a5d2a2440e2ea9c5d46cbb42c35372db97be682db9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The latter feature here is rarely used, and not very flexible as any target which needs other copy phases won\u0027t be able to disable them selectively. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d7616cb520f15a395d87a12e46791cfd5f82a1182074a57e9093fcd31faeb5a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The latter feature here is rarely used, and not very flexible as any target which needs other copy phases won\u0027t be able to disable them selectively. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/CopySwiftPackageResourcesTaskProducer.swift"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"45a7386b831ec6b89ad1c09317ec44707237e27d7207b965d03f2baea919f009"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Clean up the typing of these properties. \u003Crdar://problem/23702533\u003E Copy files phase properties should be stronger typed \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed155b7bf015f2d445123443308c204d22e3fad42db6c55bf3edd618af227dd5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: At present only products of other targets in this build, and XCFrameworks, are supported 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"32b6c276823537e58425f195710a37011a57bee6c2243fd1ef734914bea9d1ab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should probably refine this to check that we\u0027re also embedding the dependency which is merging the item we\u0027re copying, though it\u0027s likely that we are. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"8486b4b288399248ebdead2df71809259b038ce5eed4911a9292c7b62d2edb7f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should probably check whether the mergeable target is actually being linked, though it\u0027s unclear what edge case would cause that not to 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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"60ec79c1370a4c37cc11436c354c5eb7f59ba2ac80f959079a56e134b66eab43"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It\u0027s unfortunate that we have to resolve the build file here to see if it\u0027s an XCFramework, but the FileToBuild\u0027s file type is that of the library inside the XCFramework. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":334}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1163e49bd5d8d81c1f87402c3f96fa6c77c1aed675713ce73bf18c270d69982"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is sketchy: It\u0027s using the current context to evaluate a build file in potentially a different target. This might rarely matter since this code only applies to XCFrameworks, but it feels wrong. \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b3fbedf9e3eec0ed30c87682616f61fa45c5e63596c7015fc46008c8581a436"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://99446855 (Should we support USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES in build rules?) \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":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/BuildRuleTaskProducer.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ef3d3d81010ee8ca24f2796520c47764846953f8e04c6efa912e8deed0e8fe6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For some reason using error.localizedDescription here results in a link 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/XCTestProductTypeTaskProducer.swift"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f45a997a877d8ac9f25b75db2631e441712bde5804bd0aab826afeadc376617"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Surprisingly, this logic is re-signing the .framework rather than the Versions/A directory inside it (when targeting macOS), which makes it different from how we sign other frameworks (e.g., in sign-after-copy for copy files build phases). Fixing this likely means also fixing the output node for the binary we create above. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/XCTestProductTypeTaskProducer.swift"},"region":{"startLine":315}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3e006a08cfc24b8fac112cff911c52f3e48cc637b72f11dd45a696518daceb8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Passing isAdditionalSignTask here seems bogus, but otherwise we get warnings about Foo.framework/Foo not having a producer command, which I don\u0027t know how to otherwise fix. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/XCTestProductTypeTaskProducer.swift"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"78f0745acc24b1748fe13671b8b0fc86efcbefa7d13380ff676b3e96bccfa0a1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If lookup() returns nil here, doesn\u0027t this mean the two lists we return will be out-of-sync?  Is that bad? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f867aee8dd8ce6635de7f3d466a7b933a1a1414b91c1d2d3fa3f4f06bba4047"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out where this really belongs. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":304}}}],"partialFingerprints":{"codehealthFindingId/v1":"8eb085d604b4cf3e6de2710b51bb382c14f71e365800aa85ee4e670a41e2cd6f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: .firstIndex() is O(n) \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"caa1da2255db23d72b5ed97e0e4d77b2427ddd592a606d3c3109993d550af82c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: .firstIndex() is O(n) \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"71d4813a2cdfd8fd6f2f1cec99aebb9d8b03ea54082f2b41d26386fc13553b1d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: .firstIndex() is O(n) \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TargetOrderTaskProducer.swift"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d443acce3da70446fa15afb08c99164a4d94107a8a21fb5ef888d790204ec84"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to get this info from - or at least share it with - the HeadersTaskProducer. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"36cd04f84c25292dd655fd4b75131cb41fd6ead1193747439b4bf43eb4b9ccbc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to get this info from - or at least share it with - the HeadersTaskProducer. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":738}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb86a8d8337c2a1707bbaaf758a0297288c22354c90cf54b78f4ff24ccadb77d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: headerDestPaths should only be used for framework targets when determining outputPath \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/TAPISymbolExtractorTaskProducer.swift"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"860cd2356926134b5801e82a0cf46d682a8964e8e9514a144a9209fb3a0781a3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: headerDestPaths should only be used for framework targets when determining outputPath \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":743}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c2082ea977778e3a04d1901b9246a17ee95a93ab60c6995a916874d15be2a12"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://89180738\u003E Consider making this data-driven \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/SwiftStandardLibrariesTaskProducer.swift"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"a162bb1619da567b02e38f9baf656503b6ecb4659f939852606b37463270ed46"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We cannot yet use inheritance based mechanisms to implement 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductStructureTaskProducer.swift"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"29d6a4e7ca5390b33981bd14012ce44878fc321e6234e9e68be6db451e52945a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We cannot yet use inheritance based mechanisms to implement 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":576}}}],"partialFingerprints":{"codehealthFindingId/v1":"13d012c41ffcec8905a8c41fff07129ac12e2f47ffa48f069bc2c5fc2106e725"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We cannot yet use inheritance based mechanisms to implement 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":591}}}],"partialFingerprints":{"codehealthFindingId/v1":"39eff21fb09c8d786424cf6b0bae58bf21505212e9a1730268e8eaf180fd425f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We cannot yet use inheritance based mechanisms to implement 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":623}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bbcd4b6286aecafa0bd171140cda2827335773198e75b27515cdb764fa9f348"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We cannot yet use inheritance based mechanisms to implement 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"33586c99f540b665397aaccdcd5a8e7c54f8021fb59724221b5da6a2aaef9073"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We cannot yet use inheritance based mechanisms to implement 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/InfoPlistTaskProducer.swift"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8b15e4e445d5130814c3d83898a756f83413d86ed473b4414924ec17ef77804"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is in essence the same logic as for standalone products except for using WRAPPER_NAME, just diverged because the variants are top-level for them. We should reconcile, maybe by introducing a generic notion for \u0022why\u0022 this is different. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductStructureTaskProducer.swift"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb1db5177ee9124703cd91336b3c9bb7827ffee800b5207452ef62366e9df3b6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is in essence the same logic as for wrapped products except for using EXECUTABLE_PATH, just diverged to handle each variant.  We should reconcile, maybe by introducing a generic notion for \u0022why\u0022 this is different. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductStructureTaskProducer.swift"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"faabed0c0e9ecbb9c99563a76d686231f340b33c5824d88dbacc505d78b8386b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should really be phrased in terms of a concrete check against the produced executable (a task with validation criteria), not a phase check. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a15f52ec60d3094476f826540765cbe1779884c4dedd9233bc456caec830c01"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should really be phrased in terms of a concrete check against the produced executable (a task with validation criteria), not a phase check. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/GeneratedFilesTaskProducer.swift"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"5af3dc38246a5491940219a6fceb2f903238c7faf61a8b8093565454a8f01075"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should find a clean way to model this that doesn\u0027t rely on state like the Xcode approach. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"623eb4f877699e7b081c8265c6dbfdea92f72f7ca89ad1be0c4378068c849370"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This variant processing isn\u0027t quite right. Codesigning, for example, tries to always process the \u0027normal\u0027 variant last, so we should just define that as the behavior and always do it. And it seems like all of these have moved to being per-variant. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a06a13a7804d339b96387860850bdf68bd6266129b53371d90c5059ee774341"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: in the comment above, what does \u0027This\u0027 in \u0022This behavior\u0022 refer to?  The setting of the \u0027normal\u0027 variant, or picking the first variant if there is no \u0027normal\u0027? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"e381eac106abbd7b3ac8fe7216a55e50f9e521055133ff44b5aa9a0747de42a9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: is using the first of variants the right thing?  BUILD_VARIANTS has a stable order since it is user-defined but is that order is supposed to matter? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"a84cae6b0010f492adf76455186140928e92fa8da178f871163113c2c8b5bd0d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Presumably, we should enforce that INSTALL_PATH is absolute at some point? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":374}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8023e7d3fb3a62b753714975b9c0d233036da0417e7812cb4df84b23524d86d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If not all variants will have their binaries produced, then this probably won\u0027t work at present. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":417}}}],"partialFingerprints":{"codehealthFindingId/v1":"83baaa9c01a274dccdca7f144e479008b0d2e975893141821853185109c9b5fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If two different variants result in the same signed path, we discard the second variant scope. The problem is, it could have other variant-conditionalized settings that would affect signing (e.g. separate entitlements). This would be a user error and it would be nice if we diagnosed 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"55d99154396eb67edfcc2447793173d7b78ab6d95fe1e06426bad58db19f4082"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The fact that the product type spec defines the identifier of the tool to use is wacky, since nothing is taking advantage of it, so we take advantage of that by just doing the simple thing to get the one tool spec we know about. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductPostprocessingTaskProducer.swift"},"region":{"startLine":548}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0f0dc2fc509779154a65ad149ee6e56baffa764635a88308e70e372dbd34021"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: we should just set a default in the xcspec, but the existing modules-verifier allows an empty set of standards to mean the default. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ModuleVerifierTaskProducer.swift"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"40a894695e8b7e057be2e0e34a8cde43b7a43f86ae101b6cca42abc3d46d7f55"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Warn about one of these being empty and not the other? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/InfoPlistTaskProducer.swift"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a306362b312905b02570734a8163935afedb43d72f18123307bafd5c1047328"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out how to get the equivalent of depGraphContext.buildOperationContext.needsVFS 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"03841671bf7c70e981cb1c24396de5c5d85ccca1e4307546096e5061719fa29c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Evaluate whether or not it is worth deferring some of the work here until build time. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"b99e5b6af144979d77341283b68fa3866574e6c637b9f4e059432d99694d0e72"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is somewhat inefficient. We should be able to use the task validation mechanism to avoid 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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"2170bed9588f3bdc0fdefc1ac9cbb6f1200a486a2debab63022e889899cf0bff"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is very inefficient, we are resolving target names multiple times. However, we do have this information available efficiently. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4805ca1ab37c5130aef1b275dafccd1d010f7229cbfef6ecca1679c39549a56"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is not the right context to evaluate the path in, but what is? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f55a1e45f172fb8d721393929e460b4256999ba5b41c9f4dff2e76cd6c414e5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is not the right context to evaluate the path in, but what is? \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"6921647b8084deeaf864cf9f3871513e2de63b46cedb3c4b94f4392f65ab925b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Xcode traditionally reorders this list based on the target dependencies as seen from this target. In practice the main thing that fixes is seeing the right platform specific target, when a project has duplicate install paths for a particular header. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dc110d1ff32a44f1a5ca53bcac3bcdd0c9fae9f77242070d408cfacaab3e6b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This isn\u0027t the correct file resolver to use. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":297}}}],"partialFingerprints":{"codehealthFindingId/v1":"0988fff5d72f8a70f02d8c0e34e0289939fc0f0c50c775b8ed7f8c36581aa45d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This isn\u0027t the correct file resolver to use. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/HeadermapTaskProducer.swift"},"region":{"startLine":372}}}],"partialFingerprints":{"codehealthFindingId/v1":"4709022d57b0bebf6bbb5147140aaafbcc387a9ab6df174d0a64742c0feb8f35"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This isn\u0027t the correct file resolver to use. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"224b75c25fbdfb9cc3916128d11424b13950ee5f449a78b47cdcc62a48e4735a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/29117572\u003E Right now we need to create a fake auxiliary file to use as the input.  Once in-process tasks have signatures, we should use those here instead. \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":"Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/GeneratedFilesTaskProducer.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bd06ab03baf81e11309e6abf5c42e1e6537959132ee883c6beb5c71b3114f58"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Can this somehow be moved over to using the new target triple model?  The scope here isn\u0027t associated with a target so I don\u0027t think everything gets set up to use triples. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/WindowsDLLCopyTaskProducer.swift"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"efd7218695bc4168b7a1adbd8ff2b663ff9979b6d3d0bf907e8e26cc873cbaa1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These conditions should be impossible, but see: \u003Crdar://problem/31248574\u003E SWBBuildService crashed in HeadermapTaskProducer.constructVFSContents() \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef97924696cb44135e424f3103a3e52b3396c8e33af349e57e498ebbf1c831cc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This could all be avoided if the mappings were target specific and built from the closure of dependent targets (rdar://72912847) \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"544b302e18e788350a59db579f48507f377430116c6968da79dd33d0774fe12a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The comments above might be out of date now that there is no longer a default platform. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fcb10da8eed56c36d3016bab4c93b0df1d2e04bacda4efa6d8cb944dbbb4c92"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This does not belong here, this is specific to the module map creation and the Swift compiler, so they shouldn\u0027t need to be here inside common code. However, we don\u0027t currently expose any API for unrelated tasks to contribute to the VFS. We should consider providing one so that this can migrate elsewhere. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"598ede74c7376bf3a559e8042f8dde77eb7f7c9a05523d117e26b7ea993ccd71"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The calculation of swiftHeaderPath below seems like an unfortunate hard-coding of an algorithm that should be elsewhere; it comes from commit ce4151bf9e in HeadermapTaskProducer.swift originally. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"96c33a47ba0a2756dbec411e5ddeae382d60d3860dcf56cb6a1e0d09bb37fd2a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It\u0027s also not clear under what conditions this calculation will be different from SwiftCompilerSpec.generatedObjectiveCHeaderOutputPath(), but if it is (now or someday) we invoke the closure. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/HeadermapVFSTaskProducer.swift"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb3ffc07baa9b014bf98809e085b045b8b60d098db675727bed44a640395f99d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: we need consistent CAS configuration across all languages. \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":"Sources/SWBTaskConstruction/TaskProducers/WorkspaceTaskProducers/CompilationCachingConfigFileTaskProducer.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"00ade23d3ff092612304d0e2d2bc5d6ca9d63818d6c1c4104fc116788fde5f1b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This cast is unfortunate. \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":"Sources/SWBTaskExecution/Task.swift"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"9796782b0eea99e7c04eead83e8e78e3a4f180847f3b7b943556499af71e3966"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This cast is unfortunate. \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":"Sources/SWBTaskExecution/Task.swift"},"region":{"startLine":517}}}],"partialFingerprints":{"codehealthFindingId/v1":"d867b5eee7f249b64c1cc2776b3ebea60fcb30e50e85b6684456fae4a545bb8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This cast is unfortunate. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":832}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb115d9bc61769e180f1320dd419018abaa4c61144db75bd8d1da8935289870f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This cast is unfortunate. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1089}}}],"partialFingerprints":{"codehealthFindingId/v1":"23fc9ec354b41d7381eeb50882df71d2794ad6df5260970a66dbdaf540d5a7d7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is a hack, we should support anything 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":"Sources/SWBTaskExecution/Task.swift"},"region":{"startLine":288}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d0266220dee7168207700396c72dba860b6ed2cfaac6fcde0b1b855d8283f26"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move to custom tasks for these behaviors. \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":"Sources/SWBTaskExecution/Task.swift"},"region":{"startLine":525}}}],"partialFingerprints":{"codehealthFindingId/v1":"7113787465c240959e94ad860b62d2ca7b472228070528fa0b0571880a773d5f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is a stub for testing, real implementation will be done in rdar://problem/56446029 \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":"Sources/SWBTaskExecution/ProjectPlanner.swift"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc059c05b99317e79328a7efa34786294ba85ea28e613a5c133ae6189f5d9313"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is a stub for testing, real implementation will be done in rdar://problem/56446029 \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":"Sources/SWBTaskExecution/ProjectPlanner.swift"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3eaeeb8141125eca3149f03307a578ab8a2bcd591d3ff96227b349e2f632921"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: currently we only handle the compiler cache here, because the plugin configuration for the generic CAS is not configured by build settings. \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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9da1685740cc9ed49c29ea6faaecb2aeb9953b73dce08a9a691883e5309cb6a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This signature logic should be moved into the BuildDescription itself. \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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":1014}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ae5da431cd22a6ca1bd3083a6cf2050833fa2b53b02ed27eb9235e0b4421f6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could do this more optimally by also caching file system timestamp 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":"Sources/SWBTaskExecution/BuildDescriptionManager.swift"},"region":{"startLine":1022}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b63ddd7c35fa4b7d9cd6c50f817ca580289e327d5fecf735201c4e1afe693e3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO coming soon: \u003Crdar://problem/40538331\u003E \u2602\uFE0F Opaque Result Types \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b72183cdda83435a3341bc56b84b2673b197983e2cfd2341cc2741736969f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate this, and force clients to ask for what is needed (e.g., the target root node). \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":563}}}],"partialFingerprints":{"codehealthFindingId/v1":"98166543bdb904347dc012d7a92b1b141a0bea1373e7fabef2d314f94eb9bcf5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: In addition to the stated use, this is also currently being used by the shell script phase tasks to hijack their output files, based on the global set. We need to resolve that. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":565}}}],"partialFingerprints":{"codehealthFindingId/v1":"58df456912582628e99b360dc85935e066bcd6f85f1d302aa28e8cbecf292900"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Construct directly on disk. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":726}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cc76f9092dd379f8c598b407fd38ce236d453d84a01fed729de488194f62e6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For now we write as the \u0027basic\u0027 client, until we have the ability to embed llbuild. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":729}}}],"partialFingerprints":{"codehealthFindingId/v1":"b776e67ba723949b1e509fd1931318b48bd89a579993c04ef638d5e8c5074ba7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Bypass actual tasks should go away, eventually. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1130}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0ff79b77d292ef98c88aa4bd2c806614b94b7077c9e14c5828a20d99666ccad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This layering isn\u0027t working well, we are plumbing a bunch of stuff through here just because we don\u0027t want to talk to TaskConstruction. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1132}}}],"partialFingerprints":{"codehealthFindingId/v1":"afcfdd0c59affa7f424da42a9f545683a6ceda94922874c7dba1f9783bf826f3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should just get llbuild to support must-follow and must-precede in terms of commands, then we could ditch all of 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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1212}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a52dda99dc55aac33b96a3e5a2e98fa52979582137a3f842c53101904d4496b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is very fragile, if we pick outputs we would rewrite as part of the mutable output handling this won\u0027t work. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1225}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e5a24fc6041a99bbeb110f631176db8d6f7c93b94f21734d411d7dbe73b91bc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this more efficient. \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":"Sources/SWBTaskExecution/BuildDescription.swift"},"region":{"startLine":1266}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d85260882aecc154d7253a4c8448e8c6a7e8be09341094d190898a38d5ef3a5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Parsing the module identifier to reconstruct the module name is unfortunate. \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":"Sources/SWBTaskExecution/DynamicTaskSpecs/PrecompileClangModuleDynamicTaskSpec.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d51cc29c18ae05ff258e442259aff7d0ce4b196a4277a73c9dbc52203e43d93"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: Ideally the uploading tasks would not block build completion, for example when doing \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":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e8b4c7747412e2f883af2bfab018d22f2a0a8cfc3ac195dcbcba4bb6a0ff136"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME: Implement cancellation functionality. \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":"Sources/SWBTaskExecution/DynamicTaskSpecs/CompilationCachingUploader.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4dc986cffa8f8cde1a6f06f1fae4479ab3f24f7bff878501d75ba5061df8117"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /// FIXME \u003Crdar://60711683\u003E: Re-add the environment argument and pass it through. \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":"Sources/SWBTaskExecution/DynamicTaskSpecs/ClangModuleDependencyGraph.swift"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"be71f31cdbb90d682bf536ed22e6c725f1b7021e2faeaf98ffa0dcebca1edd9d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It might be nice to also add checks here for a valid App Store category. \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":"Sources/SWBTaskExecution/TaskActions/ValidateProductTaskAction.swift"},"region":{"startLine":389}}}],"partialFingerprints":{"codehealthFindingId/v1":"632b52e13aec45d816f711ec8b2f6d6c4cb44fb6fe04c495caead55c44af2381"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is quite inefficient as practically used by the build system, because we end up serializing every task action twice, effectively. We could do a lot better if we were willing to lift this signature out somewhere else, but this is simply and ensures that by default we tend to capture every interesting piece of information in the signature. \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":"Sources/SWBTaskExecution/TaskActions/TaskAction.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"88b082bc68213aba89bbd43059d3ba4b3a886e2c7345183426c71355e6163d74"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /// - showEnvironment: Whether to show the environment in the logs. TODO: should this be 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":"Sources/SWBTaskExecution/TaskActions/TaskAction.swift"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"024d6f63d2b146912a5607fcd2a46a9aae4b6216f63644f75589738edb8e7f1d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: clean up environment for caching build. \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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddf1751ab2299551f6a20048b96e620a1956b733a032ee7c645153c1eea3cd3d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://134664046 (Add an EnvironmentBlock type to represent environment variables) \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":"Sources/SWBTaskExecution/TaskActions/SwiftDriverJobTaskAction.swift"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"55e99fb92d7ee2bdca2b86cd5c92c1715faf640447dd65115eedc42c15dff534"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cancellation. \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":"Sources/SWBTaskExecution/TaskActions/SwiftCachingOutputMaterializerTaskAction.swift"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"6291414818d6f7920b739d76b382d8020e9f84bbc86f9784270e1e1d4a174504"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cancellation. \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":"Sources/SWBTaskExecution/TaskActions/SwiftCachingKeyQueryTaskAction.swift"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"c60a3d27a5da472a49c52d9a987d87a9a04f9d8441c89f27cff184b1e330ffa9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cancellation. \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":"Sources/SWBTaskExecution/TaskActions/ClangCachingOutputMaterializerTaskAction.swift"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"7579c58b5045a4de0c356dfb9d393dce4ab958270d105ccf34d9e3efdd951a1e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Cancellation. \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":"Sources/SWBTaskExecution/TaskActions/ClangCachingKeyQueryTaskAction.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"7683d03a54e76e57e20100386934c602bc4b909c1a9ae0c7a2a37af3ac9a9cfd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is not presently used, but may be needed for \u003Crdar://problem/29115067\u003E [Swift Build] Implement workaround for entitlements files generated during a build \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":"Sources/SWBTaskExecution/TaskActions/ProcessProductEntitlementsTaskAction.swift"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"07f284835855011890027c62771802f6b4f1e3aa8ea5aa683f0e4c31f37c2e5e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: consider removing this since it likely isn\u0027t needed \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":"Sources/SWBTaskExecution/TaskActions/InfoPlistProcessorTaskAction.swift"},"region":{"startLine":828}}}],"partialFingerprints":{"codehealthFindingId/v1":"96728c4261ff7a5c2492ea634520edc34a484d7749f283eee27143adfd092c4f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: replay diagnostics and other output \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":"Sources/SWBTaskExecution/TaskActions/GenericCachingTaskAction.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bce3c7c87689dc33bde5bf50d2453903e631a8fea003d9b06f9d347d16efee7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: cache diagnostics and other output \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":"Sources/SWBTaskExecution/TaskActions/GenericCachingTaskAction.swift"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"73ba650b25ca200606355d5b3c2e049c1688df516f32667589ecb9beb988f2bd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Don\u0027t pass stderr here; get real diagnostics which we can pass to our outputDelegate. \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":"Sources/SWBTaskExecution/TaskActions/FileCopyTaskAction.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1af9bbb076406169caab9d88c117caf0f400478c696ce2500030a4ee9804b09"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Maybe these should be defined within the toolchains or we could simply scan the toolchain directory as well. \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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"1678e92b7060839a02b2c5aae843f2fa1fe66afa31aadddee4d36360923ba765"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The build system should handle 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":"Sources/SWBTaskExecution/TaskActions/EmbedSwiftStdLibTaskAction.swift"},"region":{"startLine":644}}}],"partialFingerprints":{"codehealthFindingId/v1":"c055322007353e42cdc553734dfa6a29539a69ff3eb939421c0d7a5816e72b26"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This tool needs to change to allow destination file options. Currently, the build system is unable to effect a copy that also renames. \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":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"405fd3f4253b8301e3aa5a08b8b9a2c714bb6372ba511e27b2c20452411d3b43"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to factor this to common code, we need error handling support, and we need to preserve permissions probably. \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":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"13860049d183b517529171749420c8ef95ec3a5931234ca6a3ef352591d71e6c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to factor this to common code, we need error handling support, and we need to preserve permissions probably. \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":"Sources/SWBTaskExecution/TaskActions/CopyStringsFileTaskAction.swift"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"99dfe0438fdcd826c0780525285afe36c823fa3a7d2789f962ebcd82e5abf80b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The native build system would remove the old file if it existed, perform the copy, then update the mod time on the new file. \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":"Sources/SWBTaskExecution/TaskActions/CopyTiffTaskAction.swift"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2f65ca40219acaacc62b1e8ebd5d9b42639d21a796275e1bd193570137b914a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The native build system would remove the old file if it existed, perform the copy, then update the mod time on the new file. \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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"16d30abf55cb5ddef2b08dfe82f14dbde21e993777d875d7f4cbf7f4406cc766"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The native build system would remove the old file if it existed, then perform the copy. \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":"Sources/SWBTaskExecution/TaskActions/CopyPlistTaskAction.swift"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdcf7a126115e2c1ab59c8c92a424346d7672b6f1c1f94a60c2dd8b96e673d62"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Checking the CAS results here has a fundamental limitation. \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":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"4417b89670a81ac8ce23a3603f78b07f8824080bec8b0730170803f6a499a23e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deduplicate the loop body amongst all ClangScanTaskAction. \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":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"8648c696c89edd5b2b6feaf1783cd7c00310338fd54ac3368f3ccc37a88e3f76"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Replace with rdar://107496178 (libClang dependency scanner should not report system headers when -MMD is passed on the command line) when that 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":"Sources/SWBTaskExecution/TaskActions/ClangScanTaskAction.swift"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f938ad37246a2ecd70840962d4a5a1ba2ec366c78898ccce2cffc345326294f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Deduplicate the loop body amongst all ClangCompileTaskAction. \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":"Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6db32acc1017cbbd2549d3b3eef65d87fba0d85d8825d2288fe5839ff3a59a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make cache key uploading a background task that doesn\u0027t block compilation tasks. \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":"Sources/SWBTaskExecution/TaskActions/ClangCompileTaskAction.swift"},"region":{"startLine":435}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b13ecd5afffd8558afb34397de51bc6a5075aa0bb5dcb044f5b4c5cb52549dc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be able to just use some method on the actual FileType specs? \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":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"1173481eacd981acbe9959decc9beddb3affb27465421c635c7c86954f09a436"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is not a 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":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":727}}}],"partialFingerprints":{"codehealthFindingId/v1":"1430a3f3632986c2bce1c66b57739937b892fdbb76929b0ee92a70f319a060e5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be based on the target platform, not the host. See also: \u003Crdar://problem/29410050\u003E Swift Build doesn\u0027t support product references with non-constant basenames \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":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":1067}}}],"partialFingerprints":{"codehealthFindingId/v1":"2325f4506a4ece44fe0b2f3958944dc6ef5a5895056b8ad296c74d32890eedde"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://119010301\u003E This should not resolve to a product reference if the target is in a different project (unless a project reference is involved, which I don\u0027t think the test model presently supports).  This can result in subtle issues not being caught by the test when logic which relies on using a product reference (or not) is a factor.  For example some of the mergeable libraries logic. \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":"Sources/SWBTestSupport/TestWorkspaces.swift"},"region":{"startLine":1484}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cd5d6e4217b0ce1110555ef4827085831b11e9189c780da9ebf419a24f8a871"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Technically this should be a \u0022global task\u0022 diagnostic \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":"Sources/SWBTestSupport/TaskExecutionTestSupport.swift"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1de4a173a8c99e0309a942d3d2ab999f5bd7d3ed52fefdd40016698f1ff3e5a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is unfortunate since the delegate should not be used for anything else once task planning is done, but factoring out the delegate to have a \u0022NodeProducer\u0022 protocol or something similar is more than I want to sign up for 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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"72267e0d4b38a2c3f6fbcf0fa733a432c4cb35b9252d0b59d02d4bdd55c4c152"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could refine this to be clever and try to follow the symlink (and potentially multiple symlinks) to see if we fully resolve it to a file which we can identify we produce.  The ROI of that project seems pretty low.  If we decide we need to do so, MergeableLibraryTests.testMultiProjectAutomaticMergedFrameworkCreation() is a test which which (at time of writing) has a linker task which links a framework through the BUILT_PRODUCTS_DIR symlink. \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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":433}}}],"partialFingerprints":{"codehealthFindingId/v1":"8488b43a002891e7e96a7243eafd7d6d9a2127608d563a80bad3d72f29c1d8ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be traversing the chain of mutating tasks rather than skipping them in case there\u0027s a cycle which involves them which isn\u0027t captured by the creator and consumer tasks of the node, but that\u0027s considerably trickier to do. \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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":530}}}],"partialFingerprints":{"codehealthFindingId/v1":"60087b9409d16f33fe2ee8ec04f62889e7ffddbf9eceaff552b191dda7b2f559"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This \u0060runActivity\u0060 call should be wider in scope, but this would significantly complicate the code flow due to threading requirements without having async/await. \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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":878}}}],"partialFingerprints":{"codehealthFindingId/v1":"205f8d4e4ee42976c3c4e963643d4ee433a173592927454a3d4fd4fbf96fdf51"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://59432231\u003E Longer term, we should find a way to share code with CoreQualificationTester, which has a number of APIs for emitting build operation debug info. \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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":880}}}],"partialFingerprints":{"codehealthFindingId/v1":"80b813572a6889ba7e4f80d1b40f07cca19c6d19776704a270448c32c588d34a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://59432231\u003E Longer term, we should find a way to share code with CoreQualificationTester, which has a number of APIs for emitting build operation debug info. \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1544}}}],"partialFingerprints":{"codehealthFindingId/v1":"108ed50901c08a70a19d3c0d4d334d975ed3b948e3ab798883e6682565789f49"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: In theory we could take CODE_SIGN_ENTITLEMENTS into account here to generate slightly different entitlements if it exists, but right now we don\u0027t (nor do any tests check the contents of the entitlements file, as far as I know).  The logic below reflects the expected default entitlements when building for each platform. \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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":930}}}],"partialFingerprints":{"codehealthFindingId/v1":"fab947ec551e345fbd7ff67b07088a53110f599f126b3bfb6ba34c33563a1b27"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/29092604\u003E Remove workaround for projects in ExternalTests data which are still using the deprecated value \u0022Don\u0027t Code Sign\u0022 for CODE_SIGN_IDENTITY. \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":"Sources/SWBTestSupport/TaskConstructionTester.swift"},"region":{"startLine":976}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bb99ff4d9002a6c7a2f8298ed60e2a7b27722cfe7f32ea3640e41eb92c27a5e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For now, we only support SDKs that are compatible with any host triple. \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":"Sources/SWBTestSupport/SwiftSDK.swift"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"fda29a74cb3867641b40ceb540511ddb5d317d5fa96eb90b1e625dfbbf722a90"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://78361860\u003E Use results.runDestinationTargetArchitecture in our tests where appropriate so that this works \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":"Sources/SWBTestSupport/RunDestinationTestSupport.swift"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"214d11421c8b8d8103ff8464ff99ccc98b978cecc3c7075ccb12dd4754a70618"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Get a real random number generator. \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":"Sources/SWBTestSupport/RandomTestWorkspaces.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b719fd757cc896e748d6b87b525a3a1e570099ab3fc81e902ba15f9210a0379"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is not efficient. \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":"Sources/SWBTestSupport/RandomTestWorkspaces.swift"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ca8557980238d54470a8a2b8f04f96fed566a7693e8ebf4d55f133131d08cb0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Pick a random file extension. \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":"Sources/SWBTestSupport/RandomTestWorkspaces.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ab773db733d9f810e52c2c8816f7e7e8dfe9bbbfab6684954545eadc30ccc95"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Pick type randomly. \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":"Sources/SWBTestSupport/RandomTestWorkspaces.swift"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8848e8eb3740b888b814e08e03a4e1f7c453837a03df8a9b4b1e1a50c98dc73"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Pick phases randomly. \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":"Sources/SWBTestSupport/RandomTestWorkspaces.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"aed0bb5b5b2533fd39e11627d7fc97fc17dbf34f11e9703effd0f36e1c312077"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Create the random projects. \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":"Sources/SWBTestSupport/RandomTestWorkspaces.swift"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"57ad473d6f8bcdf6ce2df724f18686ebc3219217244448c2d1d672439a69ae4e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: re-enable when this is fixed and fix it for target-triples: \u003Crdar://problem/47898659\u003E MachO utilities cannot introspect static libraries \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":"Sources/SWBTestSupport/LibraryGeneration.swift"},"region":{"startLine":303}}}],"partialFingerprints":{"codehealthFindingId/v1":"706cda79d9b0994528e0596ffb47dcf2c0e8fb1867ad3b5c710e9b9e3b569f9d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We could probably collapse all of this logic into a single method inside the spec, with some refactoring in several places. \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":"Sources/SWBTestSupport/CoreBasedTests.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"90005ea9846495d44869f6a3ba0a0202b682f79594a847b0c92441f2e3df8b26"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: In an ideal world, we wouldn\u0027t need this, but currently when the SWBLLBuild layer attaches a database it has to attach a file system based on. \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1138}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea6d64f21b1fa5cf8095ed65809496cb6ccc6b7dcaf6f7b9e5b770f2cc04f2da"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should probably replicate a minimal Windows system environment (%WINDIR%\\System32, etc.) rather than being empty \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1203}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a54f6e16ca8145275ae5583b96e15773600af14638b8f0e1c4eacb81046efd5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this the default \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1211}}}],"partialFingerprints":{"codehealthFindingId/v1":"df687321095d625ea20b318fd5d21561bddb8965e898e011bf4c8cb4b1fb3446"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: handle SUPPORTED_PLATFORMS and TOOLCHAINS when necessary. Would be better to factor out the code from DependencyResolution.imposed(on:). \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1345}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fb5e41decba0cef212a7678925b8a0e6e7d4911f5700bd186c1612a49a21f66"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate that we need to do this here, but outside of tests the client will create this directory because of PIF transfer. \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1421}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b8aa93e34e78e736a92756afd78cc89181ab4ffb0348ef956ba458932073478"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We have to pass this a temporary directory path, in case the client is trying to use persistent builds, in which case the llbuild database path will be derived from this. We should clean this up and make it explicit. \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":"Sources/SWBTestSupport/BuildOperationTester.swift"},"region":{"startLine":1443}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbe2d2a6a2a7666069ff2c824b6d0ccf7930df80ad9bb44cb42c4ae2b3754ab4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Add the auto-generated options. \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":"Sources/SWBUniversalPlatform/YaccCompiler.swift"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"915c239a69ef7246ba2a4d69c72ef3a79093231c5731519483d03c0dc5debfe7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Copied from \u0060Lock.swift\u0060 in TSCBasic, would be nice if we had a better 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":"Sources/SWBUniversalPlatform/TestEntryPointGenerationTaskAction.swift"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9ae487e4ea3ce08514568dfa00731bd818cbf807efd8c3db2daa3926df75cd3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Copied from \u0060XCTEvents.swift\u0060, would be nice if we had a better 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":"Sources/SWBUniversalPlatform/TestEntryPointGenerationTaskAction.swift"},"region":{"startLine":442}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3e5e7369e85ebf18bed8c14258f64076609d513435bb51578b89aeb9e62d865"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Handle \u0060userInfo: [AnyHashable : Any]?\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":"Sources/SWBUniversalPlatform/TestEntryPointGenerationTaskAction.swift"},"region":{"startLine":471}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d791338695b20a40834539eaf1bb88c52a2972a635988b38a9ada6d3efce5a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME:  \u003Crdar://problem/24544651\u003E [Swift Build] Improve definition of task output paths w/ specs and the CommandBuildContext \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":"Sources/SWBUniversalPlatform/CopyPlistFile.swift"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ecf128ca908f56917e7c06c5b40252a6ca603021a8262a92a4b7b619ac7ed40"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Type checker performance prohibits this from being 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":"Sources/SWBUtil/String.swift"},"region":{"startLine":360}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fe1af1971cd9e78ee504facf10bb5ceed79998f5af1f9c7d1c996c6f304477a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be more efficient to skip over whole sequences of bytes that don\u0027t need escaping. \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":"Sources/SWBUtil/String.swift"},"region":{"startLine":421}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b62f92460d86b97c01abbf419b8d67bf61359df8ac4270395ca9d524b054849"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should only construct a new string if anything changed. \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":"Sources/SWBUtil/String.swift"},"region":{"startLine":659}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b07ec428fe43d20309b584128315f8ce41798f8568fd94c8f8f509128cfba24"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There doesn\u0027t seem to be a way to create a string from an \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":"Sources/SWBUtil/String.swift"},"region":{"startLine":660}}}],"partialFingerprints":{"codehealthFindingId/v1":"73733f5ad1e4f6bc5bee7d4c66ef7b8af564c3306f6ba48d52ad1408cb475373"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME:When implementing rdar://107627846, we need to think about out to have this codepath use the ClientExecutionDelegates \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":"Sources/SWBUtil/Signatures.swift"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e65c5a21d84510b660d44a2b0c084c43a89a90941bf8a6903408d77f94c0cd8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should consider whether we should combine Cache, LazyCache, and Registry, possibly with per-instance options for things like whether background deletion is allowed, whether a value creator block is guaranteed to run only once, etc.  At the moment, the various clients in Swift Build depend on the semantics of the various utility types they use. \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":"Sources/SWBUtil/Registry.swift"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"139816094a4659dd99ae0c2492655614e17792d993a69c2a51d8b2108d63eaee"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Reevaluate the presence of this wrapper in the face of Swift now auto-boxing any type into AnyObject. \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":"Sources/SWBUtil/Ref.swift"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"2596f9247b176f1f7ee8585a1cd448158190ae46ce9a36205a09ef3de9c6f4c9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a method on the output buffer stream 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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"988563995cc510f4922cf3e9291bffeddac13b56c2c303c137faa0165ca6d972"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should resolve this by eliminating the PLData case in exchange for a custom Array-of-UInt8 case which is automatically converted to. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"716da8c61ecae6eef7a39b6c089dc0acb9386d182aaba9501dd2a7cc9319eb29"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want a way to do the loading and not need to copy / traverse all of the data multiple times. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":731}}}],"partialFingerprints":{"codehealthFindingId/v1":"b089610b33d1d45591896eb79b2260ab8f1374c6baf0ade32cac24f8225ef095"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want a way to do the loading and not need to copy / traverse all of the data multiple times. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":752}}}],"partialFingerprints":{"codehealthFindingId/v1":"987ebcddc2588b61340655269b5a41455997e07ba89ac09def300226de27c054"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want a way to do the loading and not need to copy / traverse all of the data multiple times. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":774}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ffffe96f5fe48d2426df7213f82183348a9fb2ab9a810c628e42000ab0f5f6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want a way to do the loading and not need to copy / traverse all of the data multiple times. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":791}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb24ce161ff7bbb79e09557f2cf0d9a81f6d4496b0c3417f77679c5b7516fc37"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eventually, we want a way to do the loading and not need to copy / traverse all of the data multiple times. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":808}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1fd7604803b74a6a26d03cbded470eaef5171a9f788f4768999f3836413523a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this more efficient! We should be able to encode directly into the PropertyListItem object rather than first serializing to a binary plist. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":818}}}],"partialFingerprints":{"codehealthFindingId/v1":"33aa9c261b1b6050d94bb2ad383786fc9ffab60dff690813cf6d4298081ef8ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this more efficient! We should be able to decode directly from the PropertyListItem object rather than first serializing to a binary plist. \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":"Sources/SWBUtil/PropertyList.swift"},"region":{"startLine":823}}}],"partialFingerprints":{"codehealthFindingId/v1":"abccc625dbda1671ebe3de890d129cb7dbf0beab759bd4cad1e5e986d19c452f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Windows doesn\u0027t technically distinguish inherited and empty environment, but emptying out the environment is kind of complicated and usually doesn\u0027t work... ignore the problem for 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":"Sources/SWBUtil/Process.swift"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d891205278eb5f3417d91b6fe23d3662ed7418decfef828a1905686664e3462"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this fully to Swift Concurrency and execute the process via llbuild after PbxCp is fully converted to Swift \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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bf5633a599b98a22626762ea2d9e7915db49f239f835b2773bd1e790f024db4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://111169903 We should change this logic (and the calling code in task construction) to be relative to srcParentPath instead, for consistency and to eliminate srcTopLevelPath. \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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":438}}}],"partialFingerprints":{"codehealthFindingId/v1":"305efcd7b78bd9e7ebfa20cea45c36d2b9fc30f62067ee59e07522801bc86b30"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://111169903 We should change this logic (and the calling code in task construction) to be relative to srcParentPath instead, for consistency and to eliminate srcTopLevelPath. \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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbdd59d7cfa685f43545290d69de6e0f47668355b060bd9ddfe97bcde40142a4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Does this really need to print specially for POSIXError? \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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":532}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1b8c67c1a61f046b919c5761465e68c496159537f4c0eb53da5f2b2f0ebd131"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Does this really need to print specially for POSIXError? \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":"Sources/SWBUtil/PbxCp.swift"},"region":{"startLine":542}}}],"partialFingerprints":{"codehealthFindingId/v1":"613b7e8692e4d55e550789516b7bd2f568e6bfc179e09c874408843e23466311"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be failable, since a ByteString is not necessarily a valid String \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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b2151b170838ae9bfc5a312c7816a6f33dfbd3e3d6d2370aa01cd08dc043d0b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should move to being the actual internal representation. \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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f6291f0c2933229066f9019ee8ddb6c81c06391482041b35b18705e6eede432"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is unfortunate we have to convert back to String here, maybe we should just store the UTF8View and use that as our representation? Ultimately, I would like to move the internal representation for Path to be a ByteString. \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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bbeee8905ce2d56d987b84b4166d858b36ef63e6c3ce02a4298deecb3026aaf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: //FIXME: The legacy implementation of will not work for windows roots. By default on windows we never use the legacy implementation. \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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"7663af2e3355cb2da3176ee5bb12aace4325250b2aa1d8a813824668b5fedc53"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Optimize more. \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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"5672d5ad9070187228ff68b5d9d48df0592a25d22cbd03b4a69c24001ec4d5f2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: should this (and other similar uses) be Path.isUTF8PathSeparator(byte) instead for Windows? \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":"Sources/SWBUtil/Path.swift"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc39caa6a303e92ceebfbf681d07e5c50a694fdb596b6c0041367b9c344f9b2c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: [UInt8] has no fast path for Data: \u003Crdar://problem/32069787\u003E [UInt8] \u002B= has no fast path for Data \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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfe3992ac24de16dfe5bbb5809e6a87cc0a1ceabeb4465c890b3a4e9c19daf02"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We used to have a very valuable fast path for contiguous strings. See: \u003Crdar://problem/29208285\u003E \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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"34a16252c645c9d2d3380044eac56b4ae79ab6f59a1c7b641c280947564961a3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We might be able to make this more generic through the use of a \u0022JSONEncodable\u0022 protocol. \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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":429}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5f9aaf7eb235deacb3d8b1318bbdda8bfd3c0e91b0ccd22e7ca3717d8b4b7b1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We might be able to make this more generic through the use of a \u0022JSONEncodable\u0022 protocol. \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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c8fe4268d39f7929e6bcaa4bd433ceef4f442618a069bdf5eb6c0d42459620c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We might be able to make this more generic through the use of a \u0022JSONEncodable\u0022 protocol. \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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2c9948b21b5782adbfc97ffae77c41297bffdb69a0220e35b0bebe0015f7192"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this throwing again \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":"Sources/SWBUtil/NamedTemporaryDirectory.swift"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"16ddb69a92739285cd20d2ac0b93de2aaf0ab93f7d7860d76aeef65a04ab474c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The exceptions here could be much more descriptive, e.g. when some nested element couldn\u0027t be decoded.  I\u0027m not sure whether that improvement is really worth it, though. \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":"Sources/SWBUtil/MsgPackSerialization.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"0991e4b5e4c78a26859ee54ad1560e382107650fe17eaa596a429794507b487e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a Sink. \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":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f583eba6a6820a1ce186ee7bffb3db7038fa052264d79e995d17abe0551c9d7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: better error handling.  Trapping is at least secure. \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":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a35aff690d8505e651dc9e0ff830cc6275cacbbafb3e52bf733f6f00de6a46b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: better error handling.  Trapping is at least secure. \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":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2f625fc5f7719563bf56f1043dd1c6d8477dc61d58a0f2af250f5e3c696b0ab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: better error handling.  Trapping is at least secure. \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":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0e6e4854562791af8bb7a06078681ae0280807d9df69d49e05e670e8282ba44"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: better error handling.  Trapping is at least secure. \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":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"07964371a54f8bbe701ec121b8e7400a31a97b99b03a051e4bc304e37197122b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This should be a Generator. \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":"Sources/SWBUtil/MsgPack.swift"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"f23da26cb2298f18624e30bfb0378cee8bab1baf38cfb5264dd9c6890a0406cf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be using a shared definition 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":"Sources/SWBUtil/MachO.swift"},"region":{"startLine":1379}}}],"partialFingerprints":{"codehealthFindingId/v1":"886f5bcf2362b0a02edeb3ee4da7be9decce667b0c18db981bd73ad4d460fbfa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out what the best API for this is. Having a more explicit (non-format string based) API is easier to make efficient, but it ends up taking so many arguments just to get the same flexibility. \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":"Sources/SWBUtil/Int.swift"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"6673d0c1ef5ad872625bbc49a9cd88a0873ebcf8ffc4e8ce5d12a5cea6718fdd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Figure out what the best API for this is. Having a more explicit (non-format string based) API is easier to make efficient, but it ends up taking so many arguments just to get the same flexibility. \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":"Sources/SWBUtil/Int.swift"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ba68c03f0a017667bb3c4b0171ae3849fb89d81a2d70403df28452d5a438a8f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this efficient. \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":"Sources/SWBUtil/Headermap.swift"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"62b008854ffa5f5b6fa4a894f9188855570d4fbbe1f4ab0e432c937a24ce887d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Make this efficient. \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":"Sources/SWBUtil/Headermap.swift"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1d05cd79f2cdb8ed6588eea3958acbdb5a92414fcba891c28346e9235086ddd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is very risky to depend on the type layout like 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":"Sources/SWBUtil/Headermap.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"59e935a9d31def331a0218beafad516e5900da36e55e9a2f469b98f46b46516a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is very risky to depend on the type layout like 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":"Sources/SWBUtil/Headermap.swift"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"37e242059fe6d5e52de90a281121a9219f601ebd22e5a83e4cc6a6e1190cc43c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This API needs error handling support. \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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"e37affdd9edd03229406fd340a537f15988230db8fdd2e6139b63f02b2332465"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Design an asynchronous story? \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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"28c8a3d47615507a6dd08b538b63695e41b2dcd936bd76b3ccc989edfc2fd3e7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to document behavior w.r.t. error 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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d6a92759fb375dada76a102198383c202f68e81e4ef4f213b8c76e59df3d0e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to document behavior w.r.t. error 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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f10ee7ee85202deaa419f5379f2061cbe7834c81a3b77b6af9599b6c63ad9f1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Need to document behavior w.r.t. error 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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f767402424f93ab929ad9580041d8ef27d2ef1b9f468fc1aea6b62d1a5d5034"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We may want to eventually consider forcing all code to go through an FSProxy, but for now we keep the FS interfaces around. \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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":344}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9c83a0987c70182f98bd661ba00cef13b874d01785523b77fd98412455405c5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is an inappropriate location for general purpose infrastructure. \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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":474}}}],"partialFingerprints":{"codehealthFindingId/v1":"546d3a0af7f0bd040d6cd550929fc4ef692b96096f16eee12267c32524704baa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This enumerator has unclear error handling. Does nextObject() return nil on error? That\u0027s wrong. \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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":670}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3a6afe8bf43c9cf1e5adc7ec30aefb8ec55f0a03a8c72ac0fc3695a0e088aba"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Update this to actually return the link target when we support \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":"Sources/SWBUtil/FSProxy.swift"},"region":{"startLine":926}}}],"partialFingerprints":{"codehealthFindingId/v1":"7acddf2e41633e616570407cde928ab33b74c772b0681ec0a0fea0543bfeda43"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should make CountedSet a CollectionType. \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":"Sources/SWBUtil/CountedSet.swift"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"69de26043f22cf235ee683e5f90f71999e44cb59c28870811a3c75d788cfe953"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should also make CountedSet a SequenceType. \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":"Sources/SWBUtil/CountedSet.swift"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b14e70930776caf744cb132d23079e7097f4d523ab2881dadd4f2bb493a8359"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Can we eliminate some of these wrappers 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":"Sources/SWBUtil/Cache.swift"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"a37c3863be85f2e6ab190dbac12bba0867e94fa94a03dea4ed95c86bebb81179"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We used to have a very valuable ast path for contiguous strings. See: \u003Crdar://problem/29208285\u003E \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":"Sources/SWBUtil/ByteString.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"929ce0c4ce7cce4ec89ba674df7c940e7a4bfb44ad98a316d3e4a3b563bc02ce"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Is Swift\u0027s String.UTF8View.count O(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":"Sources/SWBUtil/ByteString.swift"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"545d9f280ebde32a38f2c8a7e31be3f3002946879694a57b37c12fe790f4b30c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Supply real values for this; right now it\u0027s fine because Xcode doesn\u0027t use these, but SwiftPM does \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":"Sources/SwiftBuild/SWBuildMessage\u002BProtocol.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"541c8200d69627bc2663948aae4ccd1c3817cc24a58da556bc42e1c903d15fdc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: How to encode potentially non-UTF8 strings? \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":"Sources/SwiftBuild/SWBuildMessage\u002BProtocol.swift"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0c78f6268c74dec757e986d6ffd3d06b54eb9346ed3bf1a3883b7319337eea9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Refine this to be a nice batch mode. \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":"Sources/SwiftBuild/SWBTerminal.swift"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea115f3048f0d63d262becbc24d3b174e4b9a6233e917409594e1f22683365ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is getting hit sometimes in the test suite \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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fe226cd9c0087b411d5d342a48e9882a96d4c8f37977a7ecda0c367169f4a26"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is getting hit sometimes in the test suite \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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bf737a88f22d3eebc28574ce1ace2d0c8d2d26f78301e78b0fb082d96e14282"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The way this currently works, if the service thinks it already has a complete PIF but is wrong, then it will never call back to us to send the audit PIF. We should find a way to send it the audit PIF no matter what it thinks. \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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":583}}}],"partialFingerprints":{"codehealthFindingId/v1":"16a9984ac41638be5528871fc888248d231a132a3e2461261957aa407cafcda9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Get stronger typing in the lookup method. \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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":611}}}],"partialFingerprints":{"codehealthFindingId/v1":"eac184b50b36d6a733f8afd8ec6995237d81688b8b2692dd0b890ca1f9041792"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is wasteful, we should be able to just encode it all in one go. \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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":634}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ad69026b39f0f5039ea8ab122c184832091b1f1505f2900161089746d4eb2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We have moved the base objects to Swift, but we need to do more work to be able to use the native Swift objects here -- we can\u0027t simply expect them to be re-exported from SwiftBuild.framework, since they live in a separate module we do not want to install. \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":"Sources/SwiftBuild/SWBBuildServiceSession.swift"},"region":{"startLine":738}}}],"partialFingerprints":{"codehealthFindingId/v1":"784f1e49e7f16bac120e75b6ee4765163e297fd1fd0bee45aa84db1e19a7dcb3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Display each error type differently? \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":"Sources/SwiftBuild/SWBBuildServiceConsole.swift"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"b900ee58da76a832af9221137b513926b97f832c57cb49f03fe2aa5cec0efbcd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Don\u0027t keep a copy of these on the \u0027client\u0027 side. \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":"Sources/SwiftBuild/SWBBuildServiceConsole.swift"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"89adeddc75b7aa052543e261e510d8ace6284ae1028d874a6639f49fc90ee729"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://61869156\u003E Propagate core loading diagnostics \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":"Sources/SwiftBuild/SWBBuildServiceConsole.swift"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba77dde2560552398f3da2a1cfd3587931a89ed6f5cc2bb48130765ee935f2d2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Document/define the parsing rules for the Swift Build console. \u003Crdar://problem/38407408\u003E \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":"Sources/SwiftBuild/SWBBuildServiceConsole.swift"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"c236f6fad330352eafa2de288608699e643c924ccd171f368785fb2ea5a5f08f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to deal properly with errors 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"48ade3e035c7874af961b163ef9546d13a6c66bcfe1a84bf62c6687f537dfa32"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to deal properly with errors 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":421}}}],"partialFingerprints":{"codehealthFindingId/v1":"8aaf0cd7434d506eb03c978af87a654e433c918411b478f34ecd88c209e9fa03"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For performance, avoid creating contiguous data 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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"59608a6f1fb955b69ca995bbe15d38b90574b226657d1829adad43387a149b35"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We really should wait for any remaining I/O that hasn\u2019t yet been sent by the subprocess. \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":"Sources/SwiftBuild/SWBBuildServiceConnection.swift"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"722274254a3b9ec4a0b14a6c428eaa75c20641b65925fc5308f43ec78c13fd13"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should refine 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":"Sources/SwiftBuild/SWBBuildService.swift"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5dd5f895bbb70f649fa18e067d96d4368aaf826736dbd21ebc29f7908202fe9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Shouldn\u0027t need to copy 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":"Sources/SwiftBuild/SWBBuildService.swift"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"3125b725697e39685cb33d8e4d8df1d7945da2d43d60407eeef74e36d7f0b1d7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Shouldn\u0027t need to copy 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":"Sources/SwiftBuild/SWBBuildService.swift"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"82542781c79f4bd41cc8fcdfaac2e92f06589c5e6e41b96097bef5227c5ea8a3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is rather awkward, transforming the responses 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":"Sources/SwiftBuild/SWBBuildService.swift"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"73d8b1fa9fa522c6d65f4e78e29081becbfb54178c5d8101cd83ac6356244382"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should have a set literal value form 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":"Sources/SwiftBuild/SWBBuildParameters.swift"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd9f9df571dce9255732bafa55b07cb962d02828c775adb02886920e798a6ae7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need support for setting conditions. \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":"Sources/SwiftBuild/SWBBuildParameters.swift"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"24cb6d028615cfd3c3fc96af0a80591e218776961a134c3f645092557d1abc42"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to a file, or something. \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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleGeneralCommands.swift"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ea244c5b8388d3238148aa8c425fb695458a653ea457f654a2510d2d47acdfc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this to a file, or something. \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/SwiftBuildPerfTests/BuildServicePerfTests.swift"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f87270d9a9dbae3dc87bc1ff2ca7ec2b66d628fec38b2829deab1df07b14125"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to be able to abstract the console output. \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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleGeneralCommands.swift"},"region":{"startLine":217}}}],"partialFingerprints":{"codehealthFindingId/v1":"26803a89038c63550b4586f19bb8d14932bc7e9de3734323ed5998461e18d3d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to be able to abstract the console output. \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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"44b3c8b5b11aedbeef8d3f81a35a5be7023bd813a786a7dbbf4f3fd485874eb3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We override the startInfo because the lower layers fill it in with bogus info since we don\u0027t normally have the container base path available there. Eventually this should be handled there instead, though. \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":"Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommand.swift"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbbdf2bbace9b81c891bcd6dfe08605d503fbf2557c157f1e014aead0f903222"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: fold this into \u0027encode\u0027 \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":"Sources/SwiftBuild/ProjectModel/BuildRule.swift"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"93aeed7ab437f90a0cc13f832c556ad7a3d0432d0df8a890ebe0196a29eb4b7e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: \u003Crdar://59432231\u003E Longer term, we should find a way to share code with BuildOperationTester, which has a number of APIs for building up a human readable build transcript. \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":"Sources/SwiftBuildTestSupport/CoreQualificationTester.swift"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"befee2acb00352cd072a42a3fc177224a68aebfff82bdae668e3b17eacaf9319"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Change the API to use a rule info array 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":"Sources/SwiftBuildTestSupport/CoreQualificationTester.swift"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"db20e32a81e97388aa30de482e4bb508423cac7dbafd3f402251549bed35855f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Order by target, like ExecutableTask.shouldPrecede? \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":"Sources/SwiftBuildTestSupport/CoreQualificationTester.swift"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"7740a1d5ea7ad1c1f1b6da2b1ac97e8ab67debe3917bb910747c93662c2e5227"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Switch to Test.cancel once we are on Swift 6.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":"Tests/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3b86db3f7efd66477865d0a608230bbd42bb882d54b5900f9c90c9b13cdb931"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"022543ee06746861e36f4ec7e8bf577ce80b81e221aae3b9fd4867e372e2072f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"4804afcf359a2da93fe140ef77e6d519647c60277befcd4b0e7b74f8f63b189e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":304}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa8c933b8f95e40913cef04b32d680f8bd2d5636935f90f7747b16079f8d558f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":513}}}],"partialFingerprints":{"codehealthFindingId/v1":"061d44a6deb036a5b9d2d9344b8e7b7abcbf4d5bce654284d40a9dded2d00c6b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":532}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ca0ddac37d7fb733ad7da40b090853523a904c9e59e1c69247693d66bb7e312"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBAndroidPlatformTests/SWBAndroidPlatformTests.swift"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad969341b1a2707903c124537724c64f304574bd2765e0390d86058abcf2f24b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/StaticLibraryBuildOperationTests.swift"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b7c8d743bec3d1c77ea9029a5410b2141d566dba7b0a11835e6823fafed115f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/StaticLibraryBuildOperationTests.swift"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"c554421d52b05188e481062835f06d0159fee68c606a2823bb8bc6cf0ecf7d61"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"00bed38f8cb80380358575ffe0468628f66c6ec4ce2fa27417262e0af1f21142"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"91d68827e0978956fb5ec523be1418d7d257ff8277b42618db208314aa16533b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"d42a1fee6e147b516566ceae060ccaedc85a8ea6b1dd06184ff3aaea1b445e4f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"60ff457411dd14ce99b6ebaa8f0807716c975c87a905ca266b2df9382b99b9fd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":431}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cfc44d597b14bc43828f334a9f420beef7e4ca2543edd9a5c96df19e386e1dd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"665285dba9f3dbfd3ddcdee047c55da4fa6ec855d512d61c83f9d308a08d8cde"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":638}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2bc0ade35bb3ce83456aa6a1bd809683f3cf0e6eb5e73caf7cf751ae8e10162"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":793}}}],"partialFingerprints":{"codehealthFindingId/v1":"75d1dd916f85707a614d07c5710e583526ac1e78a5466a02cce82ab2f7151082"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBGenericUnixPlatformTests/SWBGenericUnixPlatformTests.swift"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"56ca03d80e1e3e604d3b49f400380dfaa4429c81a4c16ca38bd2eb8ee2e0d824"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBGenericUnixPlatformTests/SWBGenericUnixPlatformTests.swift"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"43956e25f3b0fffab0393772556e3c5e2a33b9acab575449a6ed7be9b5b4e5d6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBQNXPlatformTests/SWBQNXPlatformTests.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"96772df4490ccc24e588222a9d5ac08a3e3c4a3d4f98944e5b99f2739f699b66"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBQNXPlatformTests/SWBQNXPlatformTests.swift"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"208860316e1231953f04ea321c66d082c3eb96c120532b0107d0fd5f6c070dd6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to make these default \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/SWBTaskConstructionTests/UnitTestTaskConstructionTests.swift"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"376be0ac25ccc7194bf86e1af807accf16435b5bab5cda58b9274ddfd50aadca"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: we should support positional arguments as well but that requires a complete understanding of all possible linker args, will come back to 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":"Tests/SWBBuildServiceTests/BuildDependencyInfoTests.swift"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3a9426273c54573932134720e6018faf5dd3747aa6e4cfa9124b26f9e202e4e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Check that the JSON we produce is correct.  We don\u0027t do this yet so we can iterate on the format rapidly. \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/SWBBuildServiceTests/BuildDependencyInfoTests.swift"},"region":{"startLine":551}}}],"partialFingerprints":{"codehealthFindingId/v1":"262f7d57879218d116b03d3e96abe899d1cfe9a985c5d86d6390bb0f7bbf289b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/72202200\u003E We\u0027re working around this issue by expecting a few tasks to run that shouldn\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":"Tests/SWBBuildSystemTests/UnitTestBuildOperationTests.swift"},"region":{"startLine":615}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe29cfbc69b317d7c30daa1fb75f58d89df76fc9b4a2aa3838951661a7ab3e66"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I understand why SetOwner and SetMode are performed on the runner, but shouldn\u0027t Strip be performed on the .xctest bundle\u0027s binary? \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/SWBBuildSystemTests/UnitTestBuildOperationTests.swift"},"region":{"startLine":1015}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfae34904d4896ba3066997618385018bd04a0d42683b442862e19a0657f71c4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I understand why SetOwner and SetMode are performed on the runner, but shouldn\u0027t Strip be performed on the .xctest bundle\u0027s binary? \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/SWBBuildSystemTests/UnitTestBuildOperationTests.swift"},"region":{"startLine":1212}}}],"partialFingerprints":{"codehealthFindingId/v1":"acd842893cba4ca487ad1161e4958f09d588f43379b4a18cdacbb37390fa15bd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Unfortunately, \u0060BuildOperationTester\u0060 doesn\u0027t set up a shared \u0060BUILT_PRODUCTS_DIR\u0060 for the whole workspace. \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/SWBBuildSystemTests/SwiftDriverTests.swift"},"region":{"startLine":1457}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b41d744e60db5957939ba733df4cbc32dd7a832c69189bcb2384c1ef7581489"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t work as expected (at least for Swift package targets). \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/SWBBuildSystemTests/SwiftCompilationCachingTests.swift"},"region":{"startLine":618}}}],"partialFingerprints":{"codehealthFindingId/v1":"5659b941f3c92f424b14bfeeea49b01388012498bf4cd67d5016fd3aed4dabed"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t work as expected (at least for Swift package targets). \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/SWBBuildSystemTests/SwiftCompilationCachingTests.swift"},"region":{"startLine":628}}}],"partialFingerprints":{"codehealthFindingId/v1":"1996becc3538888983123513fa75b742be3b4778d1907aa7eb2c90e17cc92f22"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: we should get back to this scenario once better diagnostics is in place. \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/SWBBuildSystemTests/ShellScriptSandboxingTests.swift"},"region":{"startLine":1435}}}],"partialFingerprints":{"codehealthFindingId/v1":"04dcd7a3bdf7910411bba6ba162eeab39b996e4d73559bd6fd8508b4d3923f59"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to test this in simulation. For that, we need BuildDescription support for knowing which tasks are safe to run in simulation. \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/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"52a330b81f5719e4ff6368c3126d1f216500d815750992b481ccd1e7f05dabe7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is very hacky, but unfortunately, \u0060BuildOperationTester\u0060 doesn\u0027t set up a shared \u0060BUILT_PRODUCTS_DIR\u0060 for the whole workspace. \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/SWBBuildSystemTests/PackageBuildOperationTests.swift"},"region":{"startLine":673}}}],"partialFingerprints":{"codehealthFindingId/v1":"68148df10354cbe41be8f9f45f24c09b914fb361d4cb7ea176dbcbbcedda4459"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // Some of these tests could live in in lower-layered test targets, but on the other hand there\u0027s value in having all the tests for the feature in one place. TODO discuss. \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/SWBBuildSystemTests/OnDemandResourcesTests.swift"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"118a5704c462303213459ee0243abbbc9ff4689bf6c52d53439d8174812d3030"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://119275052 This is not quite right: These references should go through a project reference, but the test infrastructure doesn\u0027t support project references. Instead we take advantage of rdar://119010301 which will create a product reference even though the producing target is in another project. \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/SWBBuildSystemTests/MergeableLibrariesBuildOperationTests.swift"},"region":{"startLine":610}}}],"partialFingerprints":{"codehealthFindingId/v1":"10dc141305b2b96fbe296f6fbab07ace02aed8cd2194e90d7740b1dcc6e86ba5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: replace by \u0060checkNoErrors\u0060 when Swift submissions catch up. \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/SWBBuildSystemTests/LinkerTests.swift"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"13464deccbbaa95b492c90158e2ad55acb4c6eb5280bdc9e284d3bc598c20321"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: remove when rdar://75754282 is fixed. \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/SWBBuildSystemTests/IndexBuildOperationTests.swift"},"region":{"startLine":1199}}}],"partialFingerprints":{"codehealthFindingId/v1":"490eb5dde768d06e6ae0978efd5c2f37f522390c7a304c18e9b87a951fed75fa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This removal is needed to work around \u003Crdar://problem/29695274\u003E, removal tracked by: \u003Crdar://problem/31455149\u003E [BLOCKED] Remove workarounds for \u003Crdar://problem/29695274\u003E \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/SWBBuildSystemTests/DiscoveredDependenciesBuildOperationTests.swift"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca4285a40a60174c8a0f8f11cf8ba3f51d1a8517f09f1324c869dbbdb13513d0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This removal is needed to work around \u003Crdar://problem/29695274\u003E, removal tracked by: \u003Crdar://problem/31455149\u003E [BLOCKED] Remove workarounds for \u003Crdar://problem/29695274\u003E \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/SWBBuildSystemTests/DiscoveredDependenciesBuildOperationTests.swift"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"8de9c552c6d5d21c26c4719197b8cd8c197b9d64b2fa956deebea3286375b0b3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Why doesn\u0027t this trigger the bug where we sometimes stat the module ahead of when it is needed? That was the purpose of this test so we need to get this to fail more before we fix 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":"Tests/SWBBuildSystemTests/DiscoveredDependenciesBuildOperationTests.swift"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b53dbe15d938298cc2f600440460a7e60c5635318b4bd0ecbbf4d39363c08c7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to eliminate the final task, as it is irrelevant to the cycle. \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/SWBBuildSystemTests/DependencyCycleDiagnosticsTests.swift"},"region":{"startLine":302}}}],"partialFingerprints":{"codehealthFindingId/v1":"96b66d4ffc4102ef2837732f4e1c5fcf7abb321880f0af2b7cf0588c64c03e75"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be able to eliminate the final task, as it is irrelevant to the cycle. \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/SWBBuildSystemTests/DependencyCycleDiagnosticsTests.swift"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea367b47ba12dc41f1844abed4b6ec635e9dc5fac3a7d8af25934fc7b1dfb458"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: (ChecksumOnlyFileSystem) \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/SWBBuildSystemTests/DependencyCycleDiagnosticsTests.swift"},"region":{"startLine":798}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9066d603b0ddb344b1d4012766115bf53acb3bab290bcadd32299fd4c8a11c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These two lines shouldn\u0027t be necessary. clang directly recognizes the same of this environment variable (coincidentally the same as our build setting). However, libclang_scanner_scan_dependencies is invoked in-process and doesn\u0027t currently have a means to propagate an environment dictionary, so it uses the calling process\u0027s. \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/SWBBuildSystemTests/ClangExplicitModulesTests.swift"},"region":{"startLine":417}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e0ddb6e12f292f707778782df5f93ba81037eb04eea8937f9e657756bab7c4d"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // Hack to reset the build system\u0027s cache of the \u0060CommandLineToolSpecInfo\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":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1031}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1be4cb5f0c83648098f707b96fb2afd1560a3f837b26cd57b31447222fca26a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Since file1.c and file3.c did not change, no need to compile or scan them. \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/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1312}}}],"partialFingerprints":{"codehealthFindingId/v1":"e85af48b337c95ecf521393f462201ec47a42486756ca9c88a8470a240de4e3e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Since file1.c and file3.c did not change, no need to compile or scan them. \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/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1625}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5a3a9759d17222b9479ab4eeb1c2a662485a0294d996a8243933495febd8916"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Since header.h did not change, we only need to scan it to get the include-tree. No need to actually recompile 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":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1316}}}],"partialFingerprints":{"codehealthFindingId/v1":"83070067acb8e5cb62d01be77921bb39c495c5a47467efeed71a6939385df516"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Since header.h did not change, we only need to scan it to get the include-tree. No need to actually recompile 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":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1632}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa87298975e3667cb3128b28b6c5dc96073a226894f46442b5aae80c98fe4c4b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If the PCH does not get recompiled, no need to recompile file1.c or file3.c either. \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/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1322}}}],"partialFingerprints":{"codehealthFindingId/v1":"56fa055f88e512d7e9099ab0dd4ba12c2a8b796c8306de578d8d2e1cb38843bc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: If the PCH does not get recompiled, no need to recompile file1.c or file3.c either. \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/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1638}}}],"partialFingerprints":{"codehealthFindingId/v1":"212ae368d06199b5859de4b92ace9592b2b0468a31286c6c114b56177bc28b3d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It\u0027s unclear whether we\u0027re happy for the previous build to prune the results of the PrecompileModule task and re-run it again now, or whether we\u0027d prefer for the results to never get pruned 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":"Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1428}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c019726d15bf90c28338f38a0cd2c7ffeda7ac9dde8e1d644277ce6ba11564b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: No need to scan for file1.c, its inputs and outputs are still up-to-date. \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/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1451}}}],"partialFingerprints":{"codehealthFindingId/v1":"5483801c8b22533d4a1cc980d3cf75539c14fe4706dab78c27352369f7c5f97e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: No need to build file1.c, its inputs and outputs are still up-to-date. \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/SWBBuildSystemTests/ClangCompilationCachingTests.swift"},"region":{"startLine":1458}}}],"partialFingerprints":{"codehealthFindingId/v1":"f62fab58199b1e663eb9bc9ab9a2432486a877ba811919c71038d5ba451af1f2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should migrate these tests to primarily only use internal execution nodes, and not end up running tools (except for tests which are explicitly trying to test that behavior). \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/SWBBuildSystemTests/BuildTaskBehaviorTests.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ae28043ec225be1cce17639443819290eab8027167b87799315342cc6960157"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Windows: Need to implement /usr/bin/true support for skipped tasks in tests \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1084}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2332e221ad1328b4c2884bd4794898c790f4ab2eaec50b9e6776609b1cf1b15"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: For now, we cannot actually use simulation here because the symlink tasks don\u0027t go through the VFS: \u003Crdar://problem/24976205\u003E [Swift Build] Add llbuild\u002BSwift Build VFS support for missing symlink \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1234}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb313a93bc53ae115be3310ff41dd93b8ec0f2803431f347827c209816f70474"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should check more details of these notifications, like their ordering w.r.t. one another, once all tasks are well ordered. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1454}}}],"partialFingerprints":{"codehealthFindingId/v1":"584ba6c3d67f72bc2a814ca273f1c9621121003dcb8f58cb6e38b13e6fbc4881"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This test should be split up. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1556}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ae02c49e732bda824c1e4beb4167eae72129c2ca2ed55ad0513987d796039f5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME(nima): add explanation \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1791}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ec588ac38e632ba0044737559a2a38a835212866e2951c321a4e8938778ece9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Partially disabled due to: \u003Crdar://problem/28138044\u003E BuildOperationTests.testActualHeadermapUse() is broken \u0026 disabled \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1909}}}],"partialFingerprints":{"codehealthFindingId/v1":"39b37e761e1e40aecb17391f0342783c6639e65cb1ef3131c065658da7108e78"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Reverse this when rdar://problem/28138044 is fixed. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1965}}}],"partialFingerprints":{"codehealthFindingId/v1":"c17d53dcac40498e13fae31006a25326f81ddb6773775413d7d49d65a23d925f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Reverse this when rdar://problem/28138044 is fixed. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1980}}}],"partialFingerprints":{"codehealthFindingId/v1":"84616e03e294db720ff1a610cf24e249e4019298082f3b252222c2993b4b361f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Reverse this when rdar://problem/28138044 is fixed. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":1990}}}],"partialFingerprints":{"codehealthFindingId/v1":"cecb2bf4f9a12c2ddaa736c9ddb4a42a0e658d9e0b23172b836d39240ea21ed3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This target was designed to test that we could upward include headers from CoreFoo (a dependent). However, rdar://problem/28138044 prevents this from working completely, so for now we build CoreFoo first. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":2078}}}],"partialFingerprints":{"codehealthFindingId/v1":"253e75ddc8453813770f12dea81d987a6c450e8b7f6230a507f45f4dcddc78e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Consider enabling deployment processing in this test. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":3310}}}],"partialFingerprints":{"codehealthFindingId/v1":"0613909bf4df7634d56526a90fdb92bb24e6afe0195242cc251627d491f7a529"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This test does not yet necessarily pass on the first iteration (which is why we run it again below), because sometimes the signature of the source bundle is computed before the Touch task runs: \u003Crdar://problem/30640904\u003E Directory touch task interferes with directory tree signatures \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":3333}}}],"partialFingerprints":{"codehealthFindingId/v1":"48253ef5c9dbc4e68b18fb42dc7c2fcc45a98158b55c09829533373c50c1f397"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This test does not yet necessarily pass on the first iteration (which is why we run it again below), because sometimes the signature of the source bundle is computed before the Touch task runs: \u003Crdar://problem/30640904\u003E Directory touch task interferes with directory tree signatures \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":3360}}}],"partialFingerprints":{"codehealthFindingId/v1":"85232916df8fa91dc7420d46094e95f60658c25db089f119ac22ec6ce35d86ce"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: No tasks should run, but the directory tree signature for the copy task isn\u0027t correctly computed yet: \u003Crdar://problem/30638921\u003E Directory tree signatures fail when tracking a symbolic link with other mutators \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":3904}}}],"partialFingerprints":{"codehealthFindingId/v1":"e92ca244569265f726df8e306cebf227cd241795302828cc3f7c9a6276968650"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: No tasks should run, but the directory tree signature for the copy task isn\u0027t correctly computed yet: \u003Crdar://problem/30638921\u003E Directory tree signatures fail when tracking a symbolic link with other mutators \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":3919}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ae78343adf1ee5f8a12e986c45640d8b94c31233a53bcc0b4090f8af45e5604"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Note that we\u0027re not yet getting precompiled-header sharing, so we end up with two \u0060ProcessPCH\u0060 tasks for 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":"Tests/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":4777}}}],"partialFingerprints":{"codehealthFindingId/v1":"a069ae0567d4435b86b939cfc605528fddba2931fca36dbba7ee8cc38aaeed5c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Right now this test doesn\u0027t seem very useful: rdar://92483952 (Figure out what to do about virtual subtasks from the integrated driver frontend in BuildOperationTests) \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5133}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8c18ce9193343b4af3b9ba5ebf05a4038e30a47ac645fcd6a358a2f7877b75b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/42261905\u003E We should do this at the task construction tests layer, once we have good automatic cycle detection there. \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/SWBBuildSystemTests/BuildOperationTests.swift"},"region":{"startLine":5422}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c0584e718c552d5980fdcd21b281b5e656b6356d31c0265f40e584c666844fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be running swift-stdlib-tool for the app here, since the framework contains Swift, but presently it breaks due to \u003Crdar://problem/28343103\u003E [Swift Build] Build failure when building a Swift app (swift-stdlib-tool issue?) \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/SWBBuildSystemTests/BuildOperationDescriptionTests.swift"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"c879d458ac86132ff5c3feabdcbc7d8c09c002e22cd0c7299eab37ae49fbf51d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be running swift-stdlib-tool for the app here, since the framework contains Swift, but presently it breaks due to \u003Crdar://problem/28343103\u003E [Swift Build] Build failure when building a Swift app (swift-stdlib-tool issue?) \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/SWBBuildSystemTests/BuildOperationDescriptionTests.swift"},"region":{"startLine":388}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe46c61877a64048abe186a124854ab836077130998558bfa5b0b8ef360a9695"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should be running swift-stdlib-tool for the app here, since the framework contains Swift, but presently it breaks due to \u003Crdar://problem/28343103\u003E [Swift Build] Build failure when building a Swift app (swift-stdlib-tool issue?) \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/SWBBuildSystemTests/BuildOperationDescriptionTests.swift"},"region":{"startLine":517}}}],"partialFingerprints":{"codehealthFindingId/v1":"95206e265881fb1d3e65b3b299b684be5c713609602b3225226bc6fb99cb8c22"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Compare errors and warnings. \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/SWBBuildSystemTests/BuildOperationDescriptionTests.swift"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c18db50268799132c3392990616894ffbb314ce0eb66f9058f77bda267db5d3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Compare errors and warnings. \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/SWBBuildSystemTests/BuildOperationDescriptionTests.swift"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9b0232e2d8e8d90853df413b510ba3c26f8b01f83c4dff9ce40eb86cee004ba"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This needs to be investigated... iIs not clear why this task is added when building a C file, and only on Linux. It\u0027s also nondeterministic. \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/SWBBuildSystemTests/BuildCommandTests.swift"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c23525818adcc958e4e489ad3e7800b1d2fe5a263e75383e97f250db130c654"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This check should really be expressed in terms of \u0022Swift \u003C 6.0\u0022 or something \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/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":449}}}],"partialFingerprints":{"codehealthFindingId/v1":"76a8d4a495f4b7fab799d83b4342bf7a451cf335c162a4881134f6ecca5f1349"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This check should really be expressed in terms of \u0022Swift \u003C 6.0\u0022 or something \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/SWBCoreTests/XCFrameworkTests.swift"},"region":{"startLine":509}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d47e06475eb6c261aca4e75f5bff6899f0a8152cd7c94b952391e5003919df6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://105297527: Realistically people will add the dylib here, but we should not copy it if we merged it into the merged framework \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/SWBCoreTests/TargetDependencyResolverTests.swift"},"region":{"startLine":5170}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf9a4db56f58bce950f8bf284586bd9c4407a70da78d581ac1b1e3a8a1d16184"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We need to get a close subtask message 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/SWBCoreTests/SwiftCompilerTests.swift"},"region":{"startLine":475}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc2ceca36c8bb29520641bec48b6784e76fb32dbddb428241324264ff2b41459"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There are some duplicate definitions of these keys, with empty descriptions. \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/SWBCoreTests/SpecRegistryTests.swift"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"d61cbcbb7e07ae9f4154aa9e83cd2bce6d02ffc70604ac6794da98d3724d2a8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This order is technically non-deterministic, need a fuzzy comparison. \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/SWBCoreTests/SpecLoadingTests.swift"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"627686bdac2c6792389eaa4954de1c01cdb788f06f7d61d0b41f76252b8195a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This definition is always overridden by the project dynamic settings, so it is isn\u0027t clear it ever is used. \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/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"c853946c64da0254c148d959dd87c9aa9169a9e3bd2b9786badcdbb3f07b3226"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This only happens for targets, which is confusing and inconsistent. \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/SWBCoreTests/SettingsTests.swift"},"region":{"startLine":401}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbe70db88e469b57ee2fd78b6a31f2a012646f40a688c08b03b99f9b4de5f428"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/34170562\u003E Re-enable these checks when we want to warn about search paths an SDK declares which do not exist. \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/SWBCoreTests/SDKRegistryTests.swift"},"region":{"startLine":836}}}],"partialFingerprints":{"codehealthFindingId/v1":"d37fda853304d8e67ecc577f89599460d066d22c5dbd6353debf0baab3406728"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Path isn\u0027t checked for existence, is that correct? \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/SWBCoreTests/ProvisioningTests.swift"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"8191065458316ccf2230957ee345a698cfb7d63d1c812d86a285d268fe93f5e6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: rdar://94174240 (Consider how to resolve ambiguous implicit dependencies with both a iphoneos target and IS_ZIPPERED macosx target) \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/SWBCoreTests/IndexTargetDependencyResolverTests.swift"},"region":{"startLine":792}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ba3fb45847179473a200c28f6bcfd1dc7e0ebe4269574b986e36136f06a8dbc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We aren\u0027t handling the list type correctly 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":"Tests/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":676}}}],"partialFingerprints":{"codehealthFindingId/v1":"266f6827e09d74f8e090a105d68ade593cceac154d2dd295a0f7a99fdc11057a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Check the inputs and outputs. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":727}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c9bd7ce28b5a4f57d7d46224867cc55066a27606ebddf0f70829113842ede98"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Check the inputs and outputs. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":749}}}],"partialFingerprints":{"codehealthFindingId/v1":"526af8a73d60b82d529e8cb2356e01a04048f07c82a2b4d9f3ce410818b977b0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We could move this outside of this test and have other tests use 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":"Tests/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":814}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcc25c63e45034d505448ac4755b20be235d5d61efe0bea8a67d5bb95007ce62"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This still has a lot of issues. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1418}}}],"partialFingerprints":{"codehealthFindingId/v1":"921eb0962de5c68f1008e2eb066906d3ada4551994689b53be6ef9fd45f87c79"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This still has a lot of issues. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1661}}}],"partialFingerprints":{"codehealthFindingId/v1":"4423c683bbbc36c9239ee3af9ed3b4c8e4c189c06af1897b8090c90bad7596e4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The input here should really be the link file list. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1426}}}],"partialFingerprints":{"codehealthFindingId/v1":"95e90c8fa5154d6c1a45a117b1f92eb9fc28ee776ac8c35ec3d0ce6144beec02"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: The input here should really be the link file list. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1669}}}],"partialFingerprints":{"codehealthFindingId/v1":"df3f74a607721dc99b7b22bfbfcd51c63ae97ef23e316b134d9ad6d026e66332"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We aren\u0027t detecting \u0022loose\u0022 libraries from the command line, e.g. absolute paths to files otherwise unadorned by some command line flag. \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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1452}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4fab524c48181076da95d3cfa2c998b6a20e5beb00dc2364b8b900830d4d273"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It would be better to report \u0027Unexpected use of OutputRelativePath\u0027 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/SWBCoreTests/CommandLineSpecTests.swift"},"region":{"startLine":1957}}}],"partialFingerprints":{"codehealthFindingId/v1":"03d301cebb567245093cb529fb69809892f47389dad54bdba58936d7b27d45f9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Adopt Swift Testing API to \u0022cancel\u0022 the test case when preconditions aren\u0027t met \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/SWBGenericUnixPlatformTests/SWBGenericUnixPlatformTests.swift"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb11fdf014e225504a5477f12e8687d2576fc85fb1ae11915d06d504c4077dc9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Should be able to claim we are our own client. \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/SWBLLBuildTests/LLBuildTests.swift"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"d76aa66ae6d651722dd1a4ea893cfc8e1dfee90a4ecc29f6c7ae4d77d6b4e12b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: It is rather annoying that we have to plumb so much context through. We should give the various methods access to some kind of object they can recover it from. \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/SWBLLBuildTests/LLBuildTests.swift"},"region":{"startLine":528}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd561286a8476539978a9706710508cab34af4bf038a0685365c51ae30bf11c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is really inefficient, I believe. \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/SWBMacroTests/MacroParsingTests.swift"},"region":{"startLine":992}}}],"partialFingerprints":{"codehealthFindingId/v1":"bff5f5b1d9da0324a67cbe4dc08cce3738456ff5ce2fa7f45d576a3dae3cfcf9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Obviously this command line is wrong... \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/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":567}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5f1ff99996f4d27a5962d33db316d26316e3667e8bd0a763057219c4c6c19b6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Obviously this command line is wrong... \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/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":581}}}],"partialFingerprints":{"codehealthFindingId/v1":"3acfcd21d8d838ec6c2ae665f78eee35082e95ceac1df71d4f528b95c4f2d5e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This isn\u0027t true yet, we test for the absence of particular tasks. \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/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2102}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad9ece65f7b80e0ef9c22d0d526934676e4b12a9656b20a1e0f4a4e1e0b22b07"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Right now, we have an extraneous ProcessProductPackaging task. \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/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2201}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1aa2a93d2a4af935d80e90a3ecf36a304ea7f97bedea863e72dab7dded4bc6d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Right now, we have an extraneous ProcessProductPackaging task. \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/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2246}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc91d02b5d1a8172f2de19e46ff3f973f45a530c83c7f27b96d07e96d53184d3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These paths are not right 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":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2316}}}],"partialFingerprints":{"codehealthFindingId/v1":"99e4f972008cec85f83f1c6b8784f1ca9606819aeefbe36a79623e9a622b90f2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These paths are not right 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":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2378}}}],"partialFingerprints":{"codehealthFindingId/v1":"95fcb07fe1f32fa1306814d5714964af944d3af566338e0c616af81f0d187e6f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These paths are not right 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":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2414}}}],"partialFingerprints":{"codehealthFindingId/v1":"08619faa6d50529001408297264f8f0b2a169a0a46e5e73685026f2a5b2a40e3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: These paths are not right 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":"Tests/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":2447}}}],"partialFingerprints":{"codehealthFindingId/v1":"493e18983fcc3263cf03581c47e5dbfcaecca235f26dbf0b163462ef914549bb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: \u003Crdar://problem/37033578\u003E [Swift Build] Extra \u0022//\u0022 in framework search path for Ld command \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/SWBTaskConstructionTests/TaskConstructionTests.swift"},"region":{"startLine":4095}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2ae2d29f394b01ca2586002b01a518b03c4c5b0c7525e7bb16d8a403b3b8eb5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We don\u0027t pass -index-store-path (for now) per rdar://48211996 \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/SWBTaskConstructionTests/SwiftModuleOnlyTaskConstructionTests.swift"},"region":{"startLine":602}}}],"partialFingerprints":{"codehealthFindingId/v1":"095ea8b1df5c798ddbcf3be0efae9742af27245c80534a06583c656a228ceb58"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Check the ResMergerProduct command line \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/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7010bfc58aba59fb048ab7bf1833440742d24988f980d586be79d73633a5d60"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This doesn\u0027t look right. \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/SWBTaskConstructionTests/ResourceTaskConstructionTests.swift"},"region":{"startLine":2315}}}],"partialFingerprints":{"codehealthFindingId/v1":"9827e14b5a41cf10980a78de5872f36126d04bada7765ac760d21b05b1630dac"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PBX requires the target to already have a resources phase in order to inject the product type\u0027s storyboard, but it would be more robust to cons one up implicitly. No ERs about that 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":"Tests/SWBTaskConstructionTests/PlatformTaskConstructionTests.swift"},"region":{"startLine":501}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea7ff8c779d39a37f4187186ef929f81f4924106f62b87996a65242dc125f473"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This seems a little fragile. Is there some way we can check the result (i.e. what\u0027s in the resulting Info.plist?) instead of the specific implementation details? \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/SWBTaskConstructionTests/PlatformTaskConstructionTests.swift"},"region":{"startLine":566}}}],"partialFingerprints":{"codehealthFindingId/v1":"90d29cdc5fafa999a183288b84e70a4834b167f0dca6cf1daf348dae7b23a9d2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Once \u003Crdar://problem/45465505\u003E is addressed and the hierarchical layout is the default then this can become a more general test. \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/SWBTaskConstructionTests/InstallTaskConstructionTests.swift"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"666b538a84246dfc8ae5ed764f55b70d5edde3f2922e75ca19c2967e6cdbf434"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should check we forced WMO here, and didn\u0027t have incremental mode. \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/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1457}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c615232527c03e26167acc1dea5cace4429b6d06472221ec83bdcb0ab6e8e75"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should check we forced WMO here, and didn\u0027t have incremental mode. \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/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1584}}}],"partialFingerprints":{"codehealthFindingId/v1":"38b59978d8fd64f01e07ec74c062115073c8489a3a5dc0ee5e0b1bd3c77dbefa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should check we forced WMO here, and didn\u0027t have incremental mode. \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/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":1873}}}],"partialFingerprints":{"codehealthFindingId/v1":"e90c9b6d708afb6c15d811a44dc96463baaa2a44184d8559e0f36552bee05d9e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should check we forced WMO here, and didn\u0027t have incremental mode. \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/SWBTaskConstructionTests/InstallAPITaskConstructionTests.swift"},"region":{"startLine":2011}}}],"partialFingerprints":{"codehealthFindingId/v1":"967d871adc3609b1435e4750bd32602e9ce40587cc572c51d3e6cb49a1fdfe1b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ideally, we\u0027d only build this for the native arch. \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/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"df5454462a15ee6242ce19de88f734b3d45f0d952bb861868039ed315bfc0e36"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ideally, we\u0027d only build this for the native arch. \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/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"97e94cbd7617fb602da7d6a130d6dbb991d3f10394b6b8f601ac857fcd6695dd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Ideally, we\u0027d only build this for the native arch. \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/SWBTaskConstructionTests/HostBuildToolTaskConstructionTests.swift"},"region":{"startLine":366}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc6228116692a84fd95f38f684a7ad48afc597a88c0116debbd4235a44c2d0d9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Coverage of headmap generation is spotty.  \u003Crdar://problem/36187970\u003E \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/SWBTaskConstructionTests/HeadermapTaskConstructionTests.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"08c6400886d791c6f3d1f50e9fab74ae1eeea6701c8a31cd3b2c480c6c2c4f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Pass the real PID \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/SWBTaskExecutionTests/TaskTestSupport.swift"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"e33d512ff07c70b2d3d62da13c7016b0e42b63ceb5e4696baac0ae717dc58d4c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Eliminate 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":"Tests/SWBTaskExecutionTests/TaskTestSupport.swift"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"02ca05fd0a97df19592958c3a8f0c0431b09ca63689f90efc5782eb89942d463"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Presently we are not testing the expanded app entitlements. \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/SWBTaskExecutionTests/ProcessProductPackagingTaskTests.swift"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"a058edde25b7370d0893f6b67db71dcc4df925be7f2e4314fdc3b65e3c21fdf4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should have some kind of test that we LSRegisterURL correctly. This probably makes more sense in a Quicklook test that actually verifies the end to end integration. \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/SWBTaskExecutionTests/LSRegisterURLTaskTests.swift"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"78ab8b4d2184fc9da2098880076c8e58ab447612834ab2ba3021457f6a5274a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Since the order of keys in dictionaries in the encoded string is nondeterministic, this validation check is currently rather fuzzy. \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/SWBUtilPerfTests/UtilPerfTests.swift"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"d826f605a9025fb9d983fc989fd7c18335139013ec844793d8abe27c4a55d06c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: I would like to get a Dictionary in 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":"Tests/SWBUtilTests/MsgPackSerializationTests.swift"},"region":{"startLine":995}}}],"partialFingerprints":{"codehealthFindingId/v1":"207fac987b2bb4153f5c1189102e8d4f80d9462ab556d1431c9fdf4bd218e450"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // \u0022armv7\u0022, // TODO: how should we determine which archs to test against? \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/SWBUtilTests/MachOTests.swift"},"region":{"startLine":368}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9408e989d8238b4f1026b74fee5756fb829316e2b7a6e87972bad48816e1687"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://problem/56446029 Implement real tests for product planner \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/SwiftBuildTests/ProductPlannerTests.swift"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"08abc2a32f8db81e497cb6f47d0bdc895a8bbc20a413e11ef8b348adeb43ec37"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://problem/56446029 Implement real tests for product planner \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/SwiftBuildTests/ProductPlannerTests.swift"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fd59c7fb530837cb54296f2019fc991c3e15ea878e7cefd65bbec20609f5ecb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: rdar://problem/56446029 Implement real tests for product planner \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/SwiftBuildTests/ProductPlannerTests.swift"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"846eb9a894b474df564608f3a441de54df24d558abb213e33edc98c81bb5ca90"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Check specifically for \u0060PIFLoadingError.invalidObject\u0060, but we lose the type information over the wire \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/SwiftBuildTests/PIFTests.swift"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"3096fea5c9c30ded508413630b93147ff5e6c960539498cddc2927f85a07b68c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Check specifically for \u0060PIFLoadingError.invalidObject\u0060, but we lose the type information over the wire \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/SwiftBuildTests/PIFTests.swift"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5a8236dea81c25137a1ddc5781a367db928a70172f0d8ad4b804d659c45941a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this test data elsewhere. \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/SwiftBuildTests/MacroEvaluationTests.swift"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d4373134f6b6b78dd3530934e00f436fdb0c0a33c806cd1bbdc60c49b3c4aa8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this test data elsewhere. \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/SwiftBuildTests/IndexingInfoTests.swift"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"81f972d917e2a52ca7b23d73134516d752b89bd43e1b1b8416d5cd440751cfa1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this test data elsewhere. \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/SwiftBuildTests/DocumentationInfoTests.swift"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"981262b3bac91465898614f3a59d36bfe95bab487b82c066cd0557bb6fff6906"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to call the real thing, perhaps in the future this is \u0060xcsigningtool\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":"Tests/SwiftBuildTests/DriverKitTests.swift"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"c731a6ca17e39889e8c692ec2eee4b8e18387a6cc14890b9efc18d13fd1a4dde"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Find a way to call the real thing, perhaps in the future this is \u0060xcsigningtool\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":"Tests/SwiftBuildTests/AppClipsTests.swift"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a15e3cfdecee0fc4b009b9804694b4112fd8a9dc609f2002875b4cca6c48733"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Move this elsewhere. \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/SwiftBuildTests/BuildValidationUtilities.swift"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"2548510d7ffaa51e1743de9ca203bd37a945fd79e24269a49fbd9b4e1d62e206"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This is broken, we are trying to test integration across products without a strong guarantee about what we are testing. In practice, we set XCODEBUILD_PATH on our current bots. \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/SwiftBuildTests/BuildValidationUtilities.swift"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"8493bbbe51027357feeede5e08beeaeb6705aef092474a48b5e9f46f3c52d0a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: We should check these events much more carefully. \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/SwiftBuildTests/BuildOperationTests.swift"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"07957620cf65fec21991b4b833452faae77dff60ca83f5150e985c38dc493f34"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Check the hierarchical relationship when we have infrastructure to do so. \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/SwiftBuildTests/BuildOperationTests.swift"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"47c7dd4dfb656894adfb929b7246c27093bae6925c73ba82c567f95c70fd1738"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Check the hierarchical relationship when we have infrastructure to do so. \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/SwiftBuildTests/BuildOperationTests.swift"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"37fc67ed6fbe9a1db9aad27ecf11e8d08dc9fdb2ab726729b69a5fadc3fc62a9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This isn\u0027t yet reliable. \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/SwiftBuildTests/BuildOperationTests.swift"},"region":{"startLine":1447}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a2626144e4f511dc8f71627b3393e07ea53e81f0ad4ddb185d87cdd189086ed"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a way to automatically populate the version here, but since these tests are not CoreBasedTests, there isn\u0027t a good way to do so 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":"Tests/SwiftBuildTests/BuildOperationTests.swift"},"region":{"startLine":2264}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcf8c01b6fb71da7cfad541781b120ef27e64e6259f383627dac456530b5bdb1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a way to automatically populate the version here, but since these tests are not CoreBasedTests, there isn\u0027t a good way to do so 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":"Tests/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4f17fb9686683ee4da61e325d6d4f2cf799d32c8e49e9229d05ee58f616071b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a way to automatically populate the version here, but since these tests are not CoreBasedTests, there isn\u0027t a good way to do so 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":"Tests/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d83f5d8f17e50f8e5505f560b5ad397018a7cbcf9d2d530c4041e0896e8dff0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a way to automatically populate the version here, but since these tests are not CoreBasedTests, there isn\u0027t a good way to do so 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":"Tests/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff1bc3ad948422f89758df50b2a970dfbea9ae7309d06788bfd6e30eb080e204"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a way to automatically populate the version here, but since these tests are not CoreBasedTests, there isn\u0027t a good way to do so 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":"Tests/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"dad94128b434169d720fd3feb8f79f15906678f48f40629246a46ba4f0c5e7fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: There should be a way to automatically populate the version here, but since these tests are not CoreBasedTests, there isn\u0027t a good way to do so 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":"Tests/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":810}}}],"partialFingerprints":{"codehealthFindingId/v1":"c080746134b03890dd0d4dd79dbdde72ab141b1dd3cb644d8c8346d76208a1d9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Revert to .equal once appintentsmetadataprocessor output is removed \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/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":881}}}],"partialFingerprints":{"codehealthFindingId/v1":"d07963239ccc81d0f5b61935e5cc08c5f666ad33193f8d793214d8992a8cd2ff"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: \u003Crdar://67845004\u003E Work around false race in TSan; this second call to sendPIF() should not be needed but for some reason it makes the TSan issue go away. \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":"Tests/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":897}}}],"partialFingerprints":{"codehealthFindingId/v1":"868a4baf61d6104cf9e127d5e0faa28051645d72309e72c7390be10eaca505ee"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Revert to .equals once appintentsmetadataprocessor output is removed \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/SwiftBuildTests/BuildLogTests.swift"},"region":{"startLine":927}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe89517813733992289659692e1d66c417e82f6828b7cc26bf966135d7be7c7d"}},{"ruleId":"D19","level":"note","message":{"text":"Documentation: no contributor guidance: There is no guidance for contributors in the root README. Include a short contributing doc covering pull request process, CI, and how to run tests locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"README.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"620f29787918fa3406ae55cb63eefa1b50410845435c4e47bda852816aaea084"}},{"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 naming convention. One method explicitly indicates throwing behavior in its name (\u0060addTargetThrowing\u0060), while the other does not (\u0060addTarget\u0060). This forces the caller to inspect the signature or documentation to know if a \u0060do-catch\u0060 block is required, rather than relying on the method name.: Unify naming. Either rename \u0060addTarget\u0060 to \u0060addTargetThrowing\u0060 for consistency, or rename \u0060addTargetThrowing\u0060 to \u0060addTarget\u0060 if the non-throwing version is the primary API and the throwing one is legacy/specific. Ideally, Swift APIs should use \u0060throws\u0060 in the signature and not encode \u0027Throwing\u0027 in the name unless distinguishing between a throwing and non-throwing variant of the exact same operation is critical (which is rare and usually discouraged in favor of \u0060Result\u0060 types or optional returns). (signatures: Project.addTargetThrowing(id:productType:name:productName:approvedByUser:) | Project.addTarget(id:productType:name:productName:))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"21610c28be5b9f26581aff6c459b78ca782fe8e458518445c880884c29732f75"}},{"ruleId":"D22","level":"warning","message":{"text":"Ambiguous method naming for optional parameters. The methods differ only by the presence of an optional parameter (\u0060impartedBuildSettings\u0060). While this is technically distinct, the lack of a distinguishing name (like \u0060addBuildConfigWithImpartedSettings\u0060) makes the API harder to discover and understand at a glance, relying on parameter count/type rather than semantic intent.: Consider using a builder pattern or a single method with a configuration struct/enum to handle optional parameters, or name the methods to reflect the presence of the imparted settings (e.g., \u0060addBuildConfigWithImpartedSettings\u0060). However, given the prevalence of this pattern in legacy codebases, this is a minor consistency issue compared to the first one. (signatures: Project.addBuildConfig(name:settings:impartedBuildSettings:) | Project.addBuildConfig(name:settings:))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"485cfe80789be136c206d470cb9ace184c5de2e0bfc66dd0cf69e7213810eb6b"}},{"ruleId":"D26","level":"note","message":{"text":"Projects may be oversized for their cohesion: 1 of 1 project(s) overshoot their size bounds, lowering Project Cohesion to 0.0/10. The most over is \u0060(repository root)\u0060 (147480 LoC, 1487 public types across 49 directories). Review these for cohesion \u2014 draw the boundary inside the module first (group each responsibility into its own package or directory and keep the cross-boundary members non-public), since splitting a published package moves types between packages and breaks consumers."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d5a94650dc74886a0f1f08eb9fb6775f1fc395279ef7e901c970c9d26f767a72"}},{"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":"d5b8f11381d61a58459ffc7c595fd52d09c03c711894a63a9578043d2338412b"},"taxa":[{"id":"CWE-829","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":"5f653dd273a36d5fcc3c9b765c377cd03e61b134142c5ec991b4218965826ab8"},"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":"3bf6d9903590779ead48e34b980321f7b50e0c7a4c2e47ef53a9f782fba2df36"},"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":"6985eada467f770b5c377495cfc3c726964ee54a4489713d8e52ebf4419fed72"},"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":"e98c5a6962305d24477d5b999dac0ee2d8bcf2435f7cbd9f362b53760a6f026f"},"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":"e67a562232b1fd2f4cbf52339635156357247036b1bcf3259d276f2c8e4ca275"},"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":"35309f094f5b859a6bb1d8fc4d37946cf609cf3a6287e26a475473b08b555b47"},"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":"0a38e99c3a3d3be1bed243a51bea949f239340918fcff4354cbfa47893aba14f"},"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":"428f067c43abffd6b5161f685be81af560aa9725dcee5312b15f208b78ad9ece"},"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":"b34f6ae5be340b339f4a67721b721f274a2b6f0ca28a755be8d53221d392cd54"},"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":"D31","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":"418b785ac487bd865cf8c1ead12f6e5b343722ddb6262feb704c40ecbf122cca"},"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":"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":"Sources/SWBMacro/MacroExpressionParsing.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54c136e8befffd6cb8ecec2544a88a33002c7daa9e603d8e27a11d09a15605b2"}},{"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":"Sources/SWBUtil/DiagnosticsEngine.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7829505f985c310df35df1ea08fbbe07fe5122acdc65ab89760af1a8670820a"}},{"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":"Sources/SWBBuildSystem/DependencyCycleFormatter.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a65fb751563d033082ed6d7df98073e2519dcf3622154abdf983189ba7d8d8b0"}},{"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":"Sources/SWBUtil/String.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb691524cb23ad0771ad90b73e4508580dd8a71aeec9a4d1258ee3d531483563"}},{"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":"Sources/SWBCore/ProjectModel/PIFLoader.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a844022b5d12d8e5126577ef66149811a6cae0016eb110e35755885b946020a"}},{"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":"Sources/SWBTestSupport/FSUtilities.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca6f46da3400af462e8b602b73a15b96866cad51756c75a88d01ebef38401c0d"}},{"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":"Sources/SWBBuildService/Tools.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fec2b3c5615f97b12e69241ab39962dcbbe1b2bdeb87c18da1fe6c4cb09511f"}},{"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":"Sources/SWBProtocol/PlanningOperationMessages.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bea69af52c934ad778c5e524028d7f81d5189f33b28b04b97ab9da252ec1acc4"}},{"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":"Sources/SWBUtil/OutputByteStream.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4904fb85f4c150f79e25fb480c9ea8ccc6deb814995344c3ba100ee6bb69742"}},{"ruleId":"D34","level":"note","message":{"text":"Further orphaned files (smaller): 200 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: Sources/SwiftBuild/ProjectModel/BuildPhases.swift, Sources/SWBTestSupport/TasksCheckingResult.swift, Sources/SWBBuildService/Session.swift, Sources/SWBCore/SpecImplementations/SpecParser.swift, Sources/SWBUtil/MsgPack.swift, Sources/SWBUtil/ArgumentSplitting.swift, Sources/SWBUtil/Headermap.swift, Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/ProductStructureTaskProducer.swift (and 192 more) (209 orphaned of 496 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; 496 of the 658 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":"warning","message":{"text":"Change coupling: BuiltinTaskActionsExtension.swift \u2194 TaskPlanningTestSupport.swift: \u0060Sources/SWBTaskExecution/BuiltinTaskActionsExtension.swift\u0060 and \u0060Sources/SWBTestSupport/TaskPlanningTestSupport.swift\u0060 change together 91% of the time (10 of the 11 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well \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). They sit in different directories, but in this ecosystem the namespace is declared in the FILE, not by the folder \u2014 so the two may well share one namespace and reference each other with no import for this pass to see. Read the pair before acting: if one derives from or overrides the other, the dependency is explicit in the type declaration and the co-change is definitional; if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE and the thing to add is a comment saying so; if they simply belong together, co-locate them; if none of these holds, the coupling is hidden and worth breaking. You can check this without leaving the row: of the 10 shared commits counted here, the most recent 3 are \u006070f1baa6\u0060 Revert \u0022Rewrite TouchTool to use FSProxy instead of shell utilities\u0022; \u0060e7cbaf49\u0060 Rewrite TouchTool to use FSProxy instead of shell utilities; \u006000136cb9\u0060 Ensure embed-in-code accessor is regenerated when resources change \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/BuiltinTaskActionsExtension.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb7d1b0fb6ba08c0520749562901ccd1ff77d54e834e256965666b6ce98b996b"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: BuiltinTaskActionsExtension.swift \u2194 CapturingTaskGenerationDelegate.swift: \u0060Sources/SWBTaskExecution/BuiltinTaskActionsExtension.swift\u0060 and \u0060Sources/SWBTestSupport/CapturingTaskGenerationDelegate.swift\u0060 change together 91% of the time (10 of the 11 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well \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). They sit in different directories, but in this ecosystem the namespace is declared in the FILE, not by the folder \u2014 so the two may well share one namespace and reference each other with no import for this pass to see. Read the pair before acting: if one derives from or overrides the other, the dependency is explicit in the type declaration and the co-change is definitional; if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE and the thing to add is a comment saying so; if they simply belong together, co-locate them; if none of these holds, the coupling is hidden and worth breaking. You can check this without leaving the row: of the 10 shared commits counted here, the most recent 3 are \u006070f1baa6\u0060 Revert \u0022Rewrite TouchTool to use FSProxy instead of shell utilities\u0022; \u0060e7cbaf49\u0060 Rewrite TouchTool to use FSProxy instead of shell utilities; \u006000136cb9\u0060 Ensure embed-in-code accessor is regenerated when resources change \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskExecution/BuiltinTaskActionsExtension.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2806971f7e4b3895c7c6ee10b260e4942e10eb19e5de3951fd703a6cf73a12a"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: Plugin.swift \u2194 Plugin.swift: \u0060Sources/SWBAndroidPlatform/Plugin.swift\u0060 and \u0060Sources/SWBQNXPlatform/Plugin.swift\u0060 change together 82% of the time (9 of the 11 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well \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). They sit in different directories, but in this ecosystem the namespace is declared in the FILE, not by the folder \u2014 so the two may well share one namespace and reference each other with no import for this pass to see. Read the pair before acting: if one derives from or overrides the other, the dependency is explicit in the type declaration and the co-change is definitional; if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE and the thing to add is a comment saying so; if they simply belong together, co-locate them; if none of these holds, the coupling is hidden and worth breaking. You can check this without leaving the row: of the 9 shared commits counted here, the most recent 3 are \u006012ab5c07\u0060 Fill out platformName extension point for other platforms; \u00603ab87e8a\u0060 Refactor the plugin loading a bit to minimize compile-time difference\u2026; \u0060e7543d15\u0060 Read hardcoded deployment targets list from features.json instead \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBAndroidPlatform/Plugin.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"28cc72580647a421789711b3c302f57c6b205045a7c13b764ce06aa3dc525204"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: BuiltinMacros.swift \u2194 TestEntryPointGenerationTaskAction.swift: \u0060Sources/SWBCore/Settings/BuiltinMacros.swift\u0060 and \u0060Sources/SWBUniversalPlatform/TestEntryPointGenerationTaskAction.swift\u0060 change together 69% of the time (9 of the 13 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well \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). They sit in different directories, but in this ecosystem the namespace is declared in the FILE, not by the folder \u2014 so the two may well share one namespace and reference each other with no import for this pass to see. Read the pair before acting: if one derives from or overrides the other, the dependency is explicit in the type declaration and the co-change is definitional; if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE and the thing to add is a comment saying so; if they simply belong together, co-locate them; if none of these holds, the coupling is hidden and worth breaking. You can check this without leaving the row: of the 9 shared commits counted here, the most recent 3 are \u0060f3e60781\u0060 Generate a test anchor runner executables can use to force linkage; \u00601d6c598a\u0060 Fix linker filelist parsing when discovering tests; \u0060133a6108\u0060 Reapply \u0022Allow opting into Swift Testing entrypoints for macOS test b\u2026 \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Settings/BuiltinMacros.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c506f49e44208f8bbae8615fe602cc7c87e4fbd93c294f9a3ecc38c57e3427d"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: RunDestinationTestSupport.swift \u2194 Plugin.swift: \u0060Sources/SWBTestSupport/RunDestinationTestSupport.swift\u0060 and \u0060Sources/SWBWebAssemblyPlatform/Plugin.swift\u0060 change together 54% of the time (7 of the 13 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well \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). They sit in different directories, but in this ecosystem the namespace is declared in the FILE, not by the folder \u2014 so the two may well share one namespace and reference each other with no import for this pass to see. Read the pair before acting: if one derives from or overrides the other, the dependency is explicit in the type declaration and the co-change is definitional; if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE and the thing to add is a comment saying so; if they simply belong together, co-locate them; if none of these 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 \u0060fcfdc3be\u0060 Revert \u0022Add support for Emscripten platform separate from WASI (#1335\u2026; \u006030bbc84e\u0060 Add support for Emscripten platform separate from WASI (#1335); \u006048dcc97c\u0060 Cleanup old WebAssembly SDK synthesis \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTestSupport/RunDestinationTestSupport.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0dabf3ab17b048a468d9d12a438dda989bda67304ebdc33fad3d2fcdc5abde5"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: PlatformInfoExtension.swift \u2194 WorkspaceContext.swift: \u0060Sources/SWBCore/Extensions/PlatformInfoExtension.swift\u0060 and \u0060Sources/SWBCore/WorkspaceContext.swift\u0060 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 \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). They sit in different directories, but in this ecosystem the namespace is declared in the FILE, not by the folder \u2014 so the two may well share one namespace and reference each other with no import for this pass to see. Read the pair before acting: if one derives from or overrides the other, the dependency is explicit in the type declaration and the co-change is definitional; if one registers itself into the other through a hook or an initialiser, the missing dependency is DELIBERATE and the thing to add is a comment saying so; if they simply belong together, co-locate them; if none of these holds, the coupling is hidden and worth breaking. You can check this without leaving the row: of the 5 shared commits counted here, the most recent 3 are \u0060e6a196c8\u0060 Remove the manual Swift SDK lookup from Linux/FreeBSD/OpenBSD platforms; \u0060a25c8684\u0060 Cleanup old Android SDK synthesis; \u00603088ae7e\u0060 Reapply \u0022Swift SDK for WASM using the run destination\u0022 \u2014 run \u0060git show\u0060 on any of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBCore/Extensions/PlatformInfoExtension.swift"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b84432aa12605c42f1903c1538135a2ce8d0992ed7fa022f58f5a53c81947137"}},{"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":"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":"P5","level":"warning","message":{"text":"No DR/backup evidence: A persistence guard (data volume / purge-protection) was found, but no backup, geo-recovery or RTO/RPO controls were evidenced \u2014 a volume that survives a container recreate is not a tested restore from catastrophic loss."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5daabb38c90b07af65b8738cf94ce884e90a7d8fef810d341de5c186188c8fe0"}},{"ruleId":"X10","level":"note","message":{"text":"Duplicated predicate: \u0060buildComponents.contains(\u0022build\u0022) || buildComponents.contains(\u0022installLoc\u0022) || (buildComponents.contains(\u0022api\u0022) \u0026\u0026 scope.evaluate(BuiltinMac\u2026\u0060 appears character-identically in 2 files \u2014 Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift, Sources/SWBTaskConstruction/TaskProducers/OtherTaskProducers/CopySwiftPackageResourcesTaskProducer.swift. It is one line, so the duplication detector\u0027s token window never sees it; the copies drift when only one is corrected. Give the condition a name and one home."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"002ecfd8546e20e35130a1e558a2fdcdf446a3d7cfb6c073b8ef5065e93990cb"}},{"ruleId":"X10","level":"note","message":{"text":"Duplicated predicate: \u0060scope.evaluate(BuiltinMacros.BUILD_COMPONENTS).contains(\u0022installLoc\u0022) \u0026\u0026 ftb.fileType.isBundle\u0060 appears character-identically in 2 files \u2014 Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift, Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/ResourcesTaskProducer.swift. It is one line, so the duplication detector\u0027s token window never sees it; the copies drift when only one is corrected. Give the condition a name and one home."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Sources/SWBTaskConstruction/TaskProducers/BuildPhaseTaskProducers/CopyFilesTaskProducer.swift"},"region":{"startLine":503}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9cfbc4c3b8cbc6843ffbaaa70081cee7e952e4b9d1d699bc880de598271803e"}}],"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-1032","guid":"5f21e517-68aa-a650-9a25-5771ef024637","name":"OWASP Top Ten \u2014 Security Misconfiguration category","shortDescription":{"text":"OWASP Top Ten \u2014 Security Misconfiguration category"},"helpUri":"https://cwe.mitre.org/data/definitions/1032.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-16","guid":"659db3ea-affc-8453-8add-c1218fbfcb92","name":"Configuration","shortDescription":{"text":"Configuration"},"helpUri":"https://cwe.mitre.org/data/definitions/16.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-732","guid":"1da27e8f-b330-7650-ab63-bd61953eae5d","name":"Incorrect Permission Assignment for Critical Resource","shortDescription":{"text":"Incorrect Permission Assignment for Critical Resource"},"helpUri":"https://cwe.mitre.org/data/definitions/732.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-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":12,"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."]}]}