I believe I'm having the same issue with my project, and have been able to isolate it to a specific combination involving a protocol with an associated type and initializer requirement, another generic type that uses that protocol and has additional requirement on the associated type, and a typealias that combines the two. I've filed a Swift bug with a demo project: https://bugs.swift.org/browse/SR-12165.