Commits

Chris Lattner committed 16a51639ef8
Fix <rdar://problem/22519983> QoI: Weird error when failing to infer archetype Introduce a new "OpenedGeneric" locator for when openGeneric opens a generic decl into a plethora of constraints, and use this in CSDiags to distinguish whether a constraint refers to an Expr as a whole or an "aspect" of the constraint. Use that information in FailureDiagnosis::diagnoseGeneralConversionFailure to know whether (as a fallback) we can correctly re-typecheck an entire expr to obtain a missing type. If we are talking about an aspect of the expr, then this clearly won't work. The upshot of this is that where we previously compiled the testcase in 22519983 to: y.swift:31:9: error: type '(inout _) -> Bool' does not conform to protocol 'RawRepresentable' let a = safeAssign ^ we now produce the somewhat more useful: y.swift:31:9: error: argument for generic parameter 'T' could not be inferred let a = safeAssign ^ y.swift:27:6: note: in call to function 'safeAssign' func safeAssign<T: RawRepresentable>(inout lhs: T) -> Bool { ^ Swift SVN r31620