@autoclosure автоматически оборачивает выражение аргумента в closure без { }; нужно для ленивой оценки (assert, &&-подобные API).
Разбор
assert(condition) не вычисляет сообщение зря в некоторых формах.
- Скрывает стоимость — документируйте.
- Можно сочетать с
@escaping.
- Злоупотребление ухудшает прозрачность.
Итог
@autoclosure лениво откладывает вычисление аргумента-выражения.