Как я могу определить всех небезопасных операторов в Swift? - PullRequest
2 голосов
/ 23 апреля 2020

Мне известны следующие синтаксические формы Swift, которые в случае сбоя вызывают ошибку времени выполнения / недопустимую инструкцию:

var x: Foo!     // implicit unsafe unwrap
x as! y         // unsafe downcast
optionalValue!  // explicit unsafe unwrap

Я хочу удалить как можно больше из этих небезопасных выражений из моего запрограммируйте и замените их безопасными альтернативами.

Чтобы удалить эти небезопасные выражения, мне сначала нужно их идентифицировать. До сих пор мой наивный подход заключался в поиске ! и игнорировании всех ложных срабатываний, таких как логическое отрицание. Какие существуют более надежные способы? Например:

  • Существует ли полный список всех синтаксических форм Swift, которые небезопасны? Я предполагаю, что мой список выше не является исчерпывающим.
  • Есть ли Xcode или флаг компилятора, чтобы превратить эти операторы в предупреждения компилятора или ошибки компилятора?
  • Есть ли linter, который я могу запустить, который будет делать эту работу?
...