[swift-evolution] Revisiting SE-0110

Pavel Yaskevich pavel.yaskevich at gmail.com
Wed May 24 14:51:40 CDT 2017


Hi Tony,

On Wed, May 24, 2017 at 12:37 PM, Jose Cheyo Jimenez via swift-evolution <
swift-evolution at swift.org> wrote:

> The way I interpreted SE-110 is that it was suppose to address anonymous
> arguments.
>
> Instead of using $0.0, $0.1, One needs to use $0, $1 when there are
> multiple arguments.
>
> I was not aware of any implications for explicitly named parameters.
>
> Perhaps the issue is with the signature of forEach. Does it need to be a
> nested tuple?
>
> public func forEach(_ body: ((key: Key, value: Value)) throws -> Void)
> rethrows
>

Jose is right about this one, since the signature of forEach is a tuple
nested into paren it means that `forEach` expects a single argument
of a tuple type instead of two arguments, such "tuple argument
destructuring" was supported by Swift 3 but after SE-0110 no longer is
because type-checker is preserving top level parens in
parameters/arguments.

Best Regards, Pavel.


>
>
> On May 24, 2017, at 12:12 PM, Tony Parker via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> Hi everyone,
>
> We received a pull request in swift-corelibs-foundation which is
> apparently in response to a language change for SE-0110.
>
> It turns this perfectly reasonable code:
>
> -        self.forEach { (keyItem, valueItem) in
>
> into this:
>
>
> +        self.forEach { (arg) in
> +            let (keyItem, valueItem) = arg
>
> Is that really the design pattern we want to encourage? What was wrong
> with the previous code?
>
> (https://github.com/apple/swift-corelibs-foundation/pull/995/files)
>
> - Tony
>
> _______________________________________________
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170524/cb6fe16c/attachment.html>


More information about the swift-evolution mailing list