<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">Is there an example of two functions, obeying the naming guidelines, which have different argument labels (not parameter names) for parameters of the same type, where it makes sense to cross-call them?</blockquote><div class=""><br class=""></div><div class="">Sure there are. For example, `adding(_:)` and `multiplied(by:)` in the new Integer protocol.</div></div></blockquote><div><br class=""></div><div>These have quite different results!</div><div><br class=""></div><div>I’m pretty convinced that Swift shouldn’t implicitly allow you to assign multiplied(by:) to the same member as you could assign adding(_:) - explicit is fine, with some syntax e.g. through a closure, but not implicit!</div><div><br class=""></div><div>To correct my goofy pre-coffee not-quite-following-the-naming-guidelines suggestion, that would be equivalent of allowing these two to be interchangeable:</div><div><br class=""></div><div>&nbsp; func drawLineTo(x: Float, y: Float)</div><div>&nbsp; func drawLineWith(angle: Float, distance: Float)</div><div><br class=""></div><div>Which is clearly not something you would expect to be allowed implicitly.</div><div><br class=""></div><div><br class=""></div><div>I’m definitely for the concept of the proposal that this is inconsistent, but I’m also definitely for making this explicitly disallowed everywhere, not allowed everywhere.</div><div><br class=""></div><div>I think Erica makes a good point about syntax too, we’ve been assuming:</div><div><br class=""></div><div>&nbsp; // compatible types</div><div>&nbsp; var x = drawLineTo</div><div>&nbsp; x = drawLineWith</div><div><br class=""></div><div>but really this isn’t Swifty syntax, the full argument labels provide more clarity here; and I’d even be in favor of disallowing the above shortening.</div><div><br class=""></div><div>Scott</div></div><br class=""></body></html>