{"schemaVersion":"2.0.0","locale":"en","title":"Borrowed pointer or view escapes its lifetime","description":"Rule ID: lifetime.escaping-value@1.0.0. Availability below refers to source-scan at product 524fa07e.","htmlUrl":"https://docs.swift-analyzer.com/catalog/lifetime.escaping-value/","markdownUrl":"https://docs.swift-analyzer.com/catalog/lifetime.escaping-value/index.md","productRevision":"524fa07e0ae4153c84ac12ae9eb6559df89ec2be","catalogRevision":"4558458d","docsRevision":"1f17ba58ab08627e0de898f1442067b09e960b48cd5605d6529e9275f8930d68","channel":"pre-prod","maturity":"experimental","access":"owner-provided-checkout","markdown":"# Borrowed pointer or view escapes its lifetime\n\nRule ID: lifetime.escaping-value@1.0.0. Availability below refers to source-scan at product 524fa07e.\n\n## V-LIFE-01 — Borrowed pointer or view escapes its lifetime\n\nBorrowed pointer or view escapes its lifetime. It examines ownership, resource state, and lifetime obligations across program paths.\n\n### Availability\n\nNot available in source-scan. There is no source-scan flag to activate this condition.\n\nA separate [experimental source preview](https://docs.swift-analyzer.com/guides/experimental/) recognizes a limited local pattern for this condition:\n\n```text\n\"$ANALYZER\" experimental-scan <path> --rule lifetime.borrowed-pointer-escape --format json\n```\n\nUse the terminal from [Installation](https://docs.swift-analyzer.com/get-started/installation/), with ANALYZER set, and replace `<path>` with a Swift file or directory. This preview is not compiler-backed source-scan coverage.\n\n### Example and action\n\nIllustrative pattern only. This is not a complete runnable package or a reproduced source-scan result. Helper APIs and omitted context must be supplied by the application.\n\n```swift\nlet escaped = data.withUnsafeBytes { bytes in\n    bytes.baseAddress\n}\nuse(escaped)\n```\n\nKeep the borrowed pointer inside the withUnsafeBytes access scope. Here use must finish synchronously and must not retain or return the pointer. The experimental selector recognizes the returned-baseAddress form; this illustration does not expand it to every pointer escape.\n\n```swift\ndata.withUnsafeBytes { bytes in\n    use(bytes.baseAddress)\n}\n```\n\n### Intended analysis\n\nIntended reasoning: Track the resource identity, ownership or valid extent through creation, transfer, use and cleanup events. The intended decision requires evidence that those events refer to the same object and that the relevant paths are covered. Required evidence: ownership, lifetime, allocation, and resource-state facts\n\n### Assumptions and unknown\n\nThe relevant facts must be admitted for the selected immutable build world. Unknown aliases, external effects, unsupported source forms or incomplete consumers can prevent a conclusion. Availability in this workflow is stated above; the illustration does not expand that availability.\n\n### Evidence and interpretation\n\nThe target catalog describes the intended condition. It is not evidence of an active source-scan diagnostic.\n\nHistorical evidence at 4558458d: recovery-required (historical qualification is incomplete and needs further evidence). That evidence has not been requalified for this product revision.\n\n[How we validate checks](https://docs.swift-analyzer.com/concepts/validation/) explains the evidence boundary. [Foundations](https://docs.swift-analyzer.com/concepts/foundations/) separates method assumptions from implementation claims.\n","anchors":["borrowed-pointer-or-view-escapes-its-lifetime","V-LIFE-01","availability","example-and-action","intended-analysis","assumptions-and-unknown","evidence-and-interpretation"]}
