Commits

Slava Pestov committed cb3ddc2200b
SIL: Fix type lowering to correctly handle concrete same-type constraints When a dependent type is mapped into context, the result will either be an archetype or a concrete type. The latter occurs if a same-type constraint exists between the dependent type and the concrete type. The logic to decide if a type should be passed directly or indirectly was not handling this case if an interface type was passed down -- we would just check if there was a class constraint present. This resulted in mismatching conventions between an interface type and its corresponding contextual type, which would trigger assertions. Note that same-type constraints between generic parameters and concrete types are still not supported for other reasons; the subject of the constraint must still be an associated type of a generic parameter. Fixes <rdar://problem/24687460>.