[swift-evolution] When to use argument labels, part DEUX

Dave Abrahams dabrahams at apple.com
Mon Feb 8 07:23:41 CST 2016


on Mon Feb 08 2016, Thorsten Seitz <swift-evolution at swift.org> wrote:

> I agree that positioning the preposition depending on whether a
> default value is present is unfortunate, but I don't agree that it
> would complicate the rules significantly as it just adds a very simple
> special case for one rule.

Heh, but then people will really demand a special case for move(from: a,
to: b)


> Is the problem that it complicates API evolvement significant enough
> to outweigh the advantage of this rule?

That's one problem.  I think we should also be concerned about rules
that create a feeling of non-uniformity and un-predictability across
code.  For example, you don't want to see something like this:

       removeAllBricks(having: .CrackleGlazeFinish)

       removeAllBeamsHaving(.RottenWood)

> Closure arguments with default values won't profit from it if written
> as trailing closure, of course.
>
> No good idea how to remedy that (trailing argument label?? probably not).

I think that's a whole 'nother bag o' worms, and, yes, some language
syntax might be needed.  IOW, the issue goes beyond mere guidelines.

> -Thorsten
>
> Am 08. Februar 2016 um 12:47 schrieb Matthew Judge via swift-evolution
> <swift-evolution at swift.org>:
>
>     Agree that basing the preposition location on whether there is a default value is
>     unfortunate. The problem is "Zone" is not redundant/needless when calling it with the
>     default value.
>
>     copyWith()
>
>     If I were asking "what zone?" Ok it's the default zone, but I'm just asking "with what?"
>
>         On Feb 7, 2016, at 10:48, Dave Abrahams via swift-evolution
>         <swift-evolution at swift.org> wrote:
>
>         on Sat Feb 06 2016, Douglas Gregor <swift-evolution at swift.org> wrote:
>
>                 On Feb 6, 2016, at 10:08 PM, Dave Abrahams via swift-evolution
>                 <swift-evolution at swift.org> wrote:
>
>                     on Sat Feb 06 2016, Thorsten Seitz
>                     <swift-evolution at swift.org> wrote:
>
>                     So the preposition should move into the argument label if the argument is
>                     optional?
>
>                     copy(withZone: zone = nil)
>
>                 That's a good idea.
>
>             It seems unfortunate that the placement of the preposition should
>
>             change depending on whether there is a default argument or not,
>
>             especially since it is reasonable to imagine that an API evolves to
>
>             gain a default argument later on.
>
>         You're right; it would complicate the rules significantly, too.
>
>             - Doug
>
>                     -Thorsten
>
>                         Am 06.02.2016 um 14:45 schrieb Matthew Judge via swift-evolution
>
>                         <swift-evolution at swift.org>:
>
>                         Very first method
>
>                         copyWith(zone: Zone = nil)
>
>                         can be called as
>
>                         copyWith()
>
>                         I'm assuming this is still something we don't want right?
>
>                             On Feb 6, 2016, at 02:16, Douglas Gregor via swift-evolution
>
>                             <swift-evolution at swift.org> wrote:
>
>                                 On Feb 5, 2016, at 1:32 PM, Dave Abrahams via swift-evolution
>
>                                 <swift-evolution at swift.org>
>                                 wrote:
>
>                                 Given all the awesome feedback I've gotten on this thread, I
>                                 went back
>
>                                 to the drawing board and came up with something new; I think
>                                 this one
>
>                                 works. The previously-stated goals still apply:
>
>                                 [snip goals]
>
>                                 P.S. Doug is presently working on generating new importer
>                                 results, based
>
>                                 on these guidelines, for your perusal. They should be ready
>                                 soon.
>
>                             Here’s a link:
>
>                             https://github.com/apple/swift-3-api-guidelines-review/pull/10/files
>
>                             Feedback welcome!
>
>                             - Doug
>
>                             _______________________________________________
>
>                             swift-evolution mailing list
>
>                             swift-evolution at swift.org
>
>                             https://lists.swift.org/mailman/listinfo/swift-evolution
>
>                         _______________________________________________
>
>                         swift-evolution mailing list
>
>                         swift-evolution at swift.org
>
>                         https://lists.swift.org/mailman/listinfo/swift-evolution
>
>                     _______________________________________________
>
>                     swift-evolution mailing list
>
>                     swift-evolution at swift.org
>
>                     https://lists.swift.org/mailman/listinfo/swift-evolution
>
>                 --
>
>                 -Dave
>
>                 _______________________________________________
>
>                 swift-evolution mailing list
>
>                 swift-evolution at swift.org
>
>                 https://lists.swift.org/mailman/listinfo/swift-evolution
>
>             _______________________________________________
>
>             swift-evolution mailing list
>
>             swift-evolution at swift.org
>
>             https://lists.swift.org/mailman/listinfo/swift-evolution
>
>         --
>
>         -Dave
>
>         _______________________________________________
>
>         swift-evolution mailing list
>
>         swift-evolution at swift.org
>
>         https://lists.swift.org/mailman/listinfo/swift-evolution
>
>     _______________________________________________
>     swift-evolution mailing list
>     swift-evolution at swift.org
>     https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-- 
-Dave



More information about the swift-evolution mailing list