Toutes les explications d'assertions Swift que je peux trouver expliquent que assert*
est jeté avec -O
mais precondition*
sont conservées à moins que -Ounchecked
est défini.Quelles assertions sont conservées avec le mode d'optimisation de wholemodule?
Toutefois, nous avons maintenant whole-module optimization-wmo
comme nouvelle valeur par défaut pour les versions de version.
Les affirmations precondition*
sont-elles conservées lorsque l'optimisation de l'ensemble du module est activée?
https://developer.apple.com/reference/swift/1541112-assert et https://developer.apple.com/reference/swift/1540960- préconditionner la liste exactement quand la condition est vérifiée ou non. Je ne pense pas que l'optimisation de module entier fasse une différence, mais vous pouvez facilement la tester vous-même en ajoutant une condition défaillante et exécuter le programme. –
Je ne connais pas AppCode, mais dans les paramètres de construction Xcode, vous avez "-O -whole-module-optimization". Donc, ce sont des options différentes, et je suppose que la documentation de assert/precondition est toujours correcte. –
@MartinR Oui, le paramètre dans AppCode m'a confondu. [FWIW] (https://youtrack.jetbrains.com/issue/OC-14836). – Raphael