Commits

Doug Gregor committed 492388736c8
Separate the archetypes of extensions from those of their nominal types. Start allowing extensions to redeclare type parameters, which will get different archetypes from the original nominal type. When an extension does not redeclare type parameters, silently clone the nominal type's generic type parameters so we still get distinct type parameters. When deserializing an extension, wire up its generic parameter list so we get the right archetypes for its members. This doesn't change the module format (that happened earlier). When determining the substitutions for an associated type that comes from a different declaration context from the conformance that will own the witness, be sure to map into the conformance's DeclContext. Otherwise, we'll end up with tangled archetypes. Fixes rdar://problem/16519588. Swift SVN r26483