Commits

Chris Lattner committed 748845aa4d9
Now that we have contextual type information more generally available, start using it to improve closure diagnostics by inferring the types of otherwise untyped closure paramdecls from this context information. This resolves: <rdar://problem/20371273> Type errors inside anonymous functions don't provide enough information producing error: binary operator '==' cannot be applied to operands of type 'Int' and 'UInt' note: overloads for '==' exist with these partially matching parameter lists: (UInt, UInt), (Int, Int) and: <rdar://problem/20978044> QoI: Poor diagnostic when using an incorrect tuple element in a closure producing: error: value of tuple type '(Int, Int)' has no member '2' and probably a lot more. We're still limited from getting things like "foo.map {...}" because we're not doing type subsitutions from the base into the protocol extension member. Swift SVN r30971