Commits

John McCall committed fdd25a3c0c6
Canonicalize the components of a GenericFunctionType in the context of the generic signature. This is obviously the right thing to do in terms of ensuring that two different expressions of the same signature always result in the same type. It also has the pleasant side-effect of causing the canonical function type to never be expressed in terms of type parameters which have been equated with concrete types, which means that various consumers that work primarily with canonical types (such as SILGen and IRGen) no longer have to worry about such types, at least when decomposing a generic function signature.