[swift-evolution] Proposal: remove "assert" and always use "precondition" instead.

Jean-Daniel Dupas mailing at xenonium.com
Tue Dec 15 01:02:35 CST 2015


> Le 15 déc. 2015 à 00:13, Amir Michail via swift-evolution <swift-evolution at swift.org> a écrit :
> 
> 
>> On Dec 14, 2015, at 6:09 PM, sune.foldager at me.com wrote:
>> 
>> 
>>> On 15 Dec 2015, at 00:01, Amir Michail via swift-evolution <swift-evolution at swift.org> wrote:
>>> 
>>> What about these renamings?
>>> 
>>> assert => debugAssert
>>> 
>>> precondition => assert
>> 
>> I think precondition is a better name because it clearly expresses that this is an expected precondition for calling the method. Precondition is similar to Microsoft code contract’s Contract.Requires.
> 
> I want ALL my asserts to be active in release code. Correctness is more important than performance for me. I suspect this is also the case with most programmers.
> 

So what you need is just a way to tell the compiler to keep the asserts in optimized builds (if there is not already one).

>> 
>> Also, the traditional use of assert (also in other languages) is for guarding against your own programmer errors, which I think most people expect when they see assert. It may be useful for an assert that’s still active in optimised builds, true. I guess that could be called assert! or assertAlways.
>> 
>> -Sune
>> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list