> On Jun 29, 2017, at 7:35 PM, Yuta Koshizawa <ko...@koherent.org> wrote: > > "In -Ounchecked builds, the optimizer may assume that this function is never > called. Failure to satisfy that assumption is a serious programming error.” > > Yes, and so the following `!!` can perform identically to `!` in -Ounchecked > builds when it is inlined.
Yes, I guess I wasn’t clear. I mean that there’s no problem. > public static func !!(optional: Optional, errorMessage: > @autoclosure () -> String) -> Wrapped { > precondition(optional != nil, errorMessage()) > return optional! > } > > -- > Yuta > > > 2017-06-29 6:42 GMT+09:00 Jaden Geller <jaden.gel...@gmail.com > <mailto:jaden.gel...@gmail.com>>: > > > On Jun 28, 2017, at 7:47 AM, Erica Sadun via swift-evolution > > <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: > > > > > >> On Jun 28, 2017, at 3:52 AM, Yuta Koshizawa via swift-evolution > >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: > >> > >> Hi, I think it is an orthogonal issue if we need a new operator. It is > >> also possible to introduce an infix `!` for it. > >> > >> I am sure that we do not need to avoid `precondition` as long as we > >> use it appropriately. It is useful to realize consistent behavior with > >> `Array`'s `subscript`, forced unwrapping `!`, `&+` and so on. In this > >> context, `precondition` does not mean a general word "precondition" > >> but the `precondition` function in the Swift standard library, which > >> is removed when -Ounchecked. > > > > > > How would the line run then? Would it simply act as a forced unwrapped > > under -Ounchecked? > > From the docs: > > "In -Ounchecked builds, the optimizer may assume that this function is never > called. Failure to satisfy that assumption is a serious programming error.” > > Aka, v. bad things happen if the precondition does not hold. > > > > > -- E > > > > _______________________________________________ > > swift-evolution mailing list > > swift-evolution@swift.org <mailto:swift-evolution@swift.org> > > https://lists.swift.org/mailman/listinfo/swift-evolution > > <https://lists.swift.org/mailman/listinfo/swift-evolution> > >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution