[swift-evolution] Proposal: remove "assert" and always use "precondition" instead.
Amir Michail
a.michail at me.com
Wed Dec 16 14:37:46 CST 2015
> On Dec 16, 2015, at 3:19 PM, Max Moiseev <moiseev at apple.com> wrote:
>
> I’m late for the discussion, sorry.
> Not answering any particular question here, but FWIW, there is an ongoing effort to apply API naming guidelines to standard library (see the swift-3-api-guidelines branch on github <https://github.com/apple/swift/tree/swift-3-api-guidelines>).
> One part of that work is: renaming `precodition` to `require`. which, arguably, makes the use-case more clear.
>
I don’t agree with the use case though. I would like to use it for internal checks and keep those checks in the release builds. So the name is misleading for that purpose.
> max
>
>> On Dec 16, 2015, at 1:06 AM, Adrian Kashivskyy via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>>> I want ALL my asserts to be active in release code.
>>
>> What's the problem in using `precondition` then?
>>
>> Pozdrawiam – Regards,
>> Adrian Kashivskyy
>>
>>> Wiadomość napisana przez Amir Michail via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> w dniu 15.12.2015, o godz. 00:13:
>>>
>>>
>>>> On Dec 14, 2015, at 6:09 PM, sune.foldager at me.com <mailto:sune.foldager at me.com> wrote:
>>>>
>>>>
>>>>> On 15 Dec 2015, at 00:01, Amir Michail via swift-evolution <swift-evolution at swift.org <mailto: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.
>>>
>>>>
>>>> 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 <mailto:swift-evolution at swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151216/d827890c/attachment.html>
More information about the swift-evolution
mailing list