To use the parameters, the function would have to check for nil anyways, right (or risk a crash at runtime)? If the parameter is changed from an IUO to an Optional, the check for nil simply becomes a shadowing with guard.
Saagar Jha > On Jul 20, 2016, at 21:10, Chris Lattner <clatt...@apple.com> wrote: > > >> On Jul 20, 2016, at 5:24 PM, Saagar Jha <saagarjh...@gmail.com >> <mailto:saagarjh...@gmail.com>> wrote: >> >> Sorry for the last email…I didn’t see your response. >> >> I realize that disallowing IUOs in parameters (but not as properties) is >> inconsistent, but IUOs for properties make sense: they must be set during >> initialization, but sometimes this isn’t possible. IUOs make it possible to >> use the property just as any other non-Optional one, provided the property >> is set before it is used (see the proposal). This kind of guarantee doesn’t >> work for function parameters and return values. >> >> As for IUOs for non-audited methods; why can’t they just all use Optional >> parameters? It should have the same behavior as before, since you can pass >> in both an Optional as well as a non-Optional even today. > > Because an override of an unaudited method has to *use* the parameters. > > -Chris
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution