[swift-evolution] generic typealias inside generic type
Chris Lattner
clattner at apple.com
Sat Jun 18 23:52:51 CDT 2016
> On Jun 17, 2016, at 11:06 AM, Vladimir.S via swift-evolution <swift-evolution at swift.org> wrote:
>
> 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?
Yes, this should work, it is a bug in the compiler.
-Chris
More information about the swift-evolution
mailing list