With `where` at the end, the Standard Library function:

        public func != <
                A : Equatable, 
                B : Equatable, 
                C : Equatable, 
                D : Equatable, 
                E : Equatable, 
                F : Equatable
        > (lhs: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F)) -> Bool

becomes:

        public func != (lhs: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F)) -> 
Bool where <
                A : Equatable,
                B : Equatable,
                C : Equatable,
                D : Equatable,
                E : Equatable,
                F : Equatable
        >
milos

> On 6 Apr 2016, at 19:35, Pyry Jahkola via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> On 06 Apr 2016, at 21:30, Developer via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> If you've ever gotten to the point where you have a sufficiently generic 
>> interface to a thing and you need to constrain it, possibly in an extension, 
>> maybe for a generic free function or operator, you know what a pain the 
>> syntax can be for these kinds of operations.
> 
> +1 already!
> 
>> Or, if you're feeling ambitious, even
>> 
>> func anyCommonElements <T, U>
>> where T : SequenceType, U : SequenceType,
>> T.Generator.Element: Equatable, T.Generator.Element == U.Generator.Element
>> (lhs: T, _ rhs: U) -> Bool
> 
> I would actually move them as far as after everything else, and right before 
> the definition body. For the above function that would mean:
> 
> func anyCommonElements<T, U>(lhs: T, _ rhs: U) -> Bool
>     where T : SequenceType,
>           U : SequenceType,
>           T.Generator.Element: Equatable,
>           T.Generator.Element == U.Generator.Element
> {
>     ...
> }
> 
> That would make the definition look closer to what the call site looks like.
> 
> The same would work for generic types  too:
> 
> public struct Dictionary<Key, Value>
>     where Key : Hashable
> {
>    ...
> }
> 
> — Pyry
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to