Please consider this code:

struct Foo<T> {
    typealias Group<Key,Value> = (key:Key, group:[Value])

    func bar<U,V>(u: U, v: V) -> Foo<Group<U,V>> {
        return Foo<Group<U,V>>()
    }
}

It will not compile:
cannot specialize non-generic type '(key: Key, group: [Value])'

But this will work as expected:

typealias Group<Key,Value> = (key:Key, group:[Value])

struct Foo<T> {
    func bar<U,V>(u: U, v: V) -> Foo<Group<U,V>> {
        return Foo<Group<U,V>>()
    }
}

Shouldn't we be able to work with Group typealias inside Foo<T> without problems as it has no any relationship to generic type T ? Or I'm missing something?
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to