[swift-evolution] Support for assertions/preconditions that sometimes fail.

Amir Michail a.michail at me.com
Sat Jan 14 18:10:52 CST 2017

It’s quite common for an assertion/precondition that you thought should hold actually does not yet there is no bug. In that case, you might want to remind yourself of this fact by commenting out the assertion/precondition (instead of deleting it) so that you don’t make the same mistake in the future by inserting such assertions/preconditions into the code.

However, it would be nice to have explicit support for assertions/preconditions that don’t always hold where there is no bug.

For example:

preconditionNotAlwaysTrue( list.isEmpty )

When your app finishes running, the IDE could show you all such preconditions/assertions that you thought fail sometimes that did not fail in that particular run. In that case, you might consider switching them to normal preconditions/assertions provided your code has now evolved to the point where they always hold.

More information about the swift-evolution mailing list