What about `PreconditionFailure`? If you obtain an instance of this type, it means a precondition has failed.
Jacob On Mon, Jun 6, 2016 at 9:48 AM, Joe Groff via swift-evolution < [email protected]> wrote: > `Never` seems reasonable to me too. I'll add that to the proposal as an > alternative. > > -Joe > > > On Jun 5, 2016, at 11:37 AM, T.J. Usiyan via swift-evolution < > [email protected]> wrote: > > > > I vote for Bottom or Never. None does not convey "this should not occur > or be evaluated". > > > > On Sun, Jun 5, 2016 at 2:26 PM, Антон Жилин <[email protected]> > wrote: > > The following names were suggested: NoReturn, Bottom, None, Never. > > I would pick None, because it looks like opposite to Any and fits nicely > in generic types. > > > > I would prefer the type to be simple, and be implemented as a case-less > enum (not a bottom value, as in Haskell). > > > > None should be a usual enum, with no compiler magic except that > functions returning None are equivalent to current @noreturn. > > > > Example 1. > > let x: None? > > // ... > > let y = x! > > > > It will trap in runtime not because we discover scary bottom thing, as > in Haskell, but because x had value Optional.none at that moment and we > asserted otherwise. > > We could prove that it is always true in this case, but compiler must be > stupid about this. > > > > Example 2. > > Compiler should allow including None in structures. Error will show up > in constructor, when we will not be able to initialize the field. > > > > Example 3. > > None in an enum case makes that case never appear in values of such a > type. But compiler can not know about that. > > > > - Anton > > > > _______________________________________________ > > swift-evolution mailing list > > [email protected] > > https://lists.swift.org/mailman/listinfo/swift-evolution > > > > > > _______________________________________________ > > swift-evolution mailing list > > [email protected] > > https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
