Commits

Chris Lattner committed e28c907e86a
type check the subexpressions of a callexpr more consistently, always checking the arguments independently (not just if one argument is inout). This routes around issues handling tuples, and brings more consistency to the experience. Factor this logic out and use it for operators and subscripts as well. This improves a small collection of diagnostics, including the infamous: // Infer incompatible type. - func6(fn: {a,b->Float in 4.0 }) // expected-error {{cannot convert return expression of type 'Double' to expected return type 'Float'}} + func6(fn: {a,b->Float in 4.0 }) // expected-error {{cannot invoke 'func6' with an argument list of type '(fn: (_, _) -> Float)'}} + // expected-note @-1 {{expected an argument list of type '(fn: (Int, Int) -> Int)'}} Swift SVN r30570