Commits
Joe Groff committed aecbd448bbd
AST: Accept dependent member base type substitutions that produce archetypes.
For instance:
protocol Fooable {
typealias Foo
}
protocol Barrable {
typealias Bar: Fooable
func bar(Bar) -> Bar.Foo
}
struct FooBar<T: Fooable>: Barrable {
typealias Bar = T
func bar(x: T) -> T.Foo { }
}
Substituting 'T' into 'FooBar<$T>.Bar.Foo' gives 'T.Foo'. Fixes <rdar://problem/16257259>.
Swift SVN r14828