自己自製的小工具回憶錄。
提到 Swift 的 leak 就免不了提到 ARC
因為沒有處理好 ARC strong ref 近一步導致 Retain Cycle
因此就想說能不能透過程式碼檢查,直接找出潛在(或已經是) Leak 的目標
內容會涵蓋
SwiftSyntax
SourceKitten(SourceKit)
ARC 首先,我們可以先從官方的範例 ARC 開始‧ class Person { let name: String init(name: St...
其他 Retain Cycle 範例 Closure 我們先從一個範例開始‧下面這段 code 雖然沒有 leak‧實際上 closure 已經造成 stro...
定義潛在 Leak 這個階段要先定義那些是我們想要抓的目標 從上一篇來看,我們可將他們分成兩類 Capture Assign Capture 因為不小心...
這邊我們要先用第一個 lib SourceKitten 透過 SourceKitten.Module 取得 某 Target 的 file list. 以及編譯...
SwiftSyntax 前導 (AST) 在前面的第四天,我們已經學會了如何取得特定 Module 的 file list。現在,我們將進一步使用另一個 lib...
初入 SwiftSyntax 今天我們要引入第 2 個 library SwiftSyntax, 並且會稍微帶過三個元件,分別是: Parser Syntax...
深入 SyntaxVisitor 在深入研究 SyntaxVisitor 之前,讓我們先介紹一個重要的工具。 AST Explorer 由katsumi大 所...
第一個工具 ID Visitor 今天我們要撰寫第一個工具來蒐集所有的 ID 實作部分也很簡單只要遇到 ID 就直接儲存起來即可。 import SwiftSy...
我們先回顧昨天已經拿到了所有 ID 目前的資料太過於零散且包含許多雜訊。 於是,一個 visitor 無法解決的問題。 那就~在來一層抽象(visitor)...
昨天我們從零散 ID 升級到各個宣告(global/class/...)的 零散 ID。 於是我們可在仿照 昨天,一層 visitor 解決不了。 繼續在中間...