Как я могу получить информацию AST об использовании индекса в SwiftLint (или SourceKitten)
Я пытаюсь написать новое правило для использования подписки массива в SwiftLint, но я не могу получить необходимую информацию. Итак, для следующего примера кода Swift:
let arr = [1, 2, 3]
let dict = [1: "hi", 2: "bye"]
arr[2]
dict[2]
Я хочу правило, которое предупредит меня, что arr[2]
может разбиться, но не dict[2]
(поэтому я не думаю, что правило регулярных выражений будет работать).
Я попытался поиграть с SourceKitten из командной строки и не смог найти никакой информации о доступе к индексам массива. Я также попытался создать свой собственный ASTRule в SwiftLint и заставил его создавать предупреждение в каждой отдельной строке, но предупреждения появлялись только в объявлениях, а не в выражениях, и я не могу найти какие-либо существующие ASTRule, которые не относятся к объявлениям, поэтому я не знаю с чего начать