Commits

Chris Lattner committed bd03e480904
teach typeCheckArgumentChildIndependently how to propagate type information down to call argument lists that have more than one operand (heavily leveraging "computeTupleShuffle"). This resolves a great number of QoI radars, including things like: <rdar://problem/19981782> QoI: poor diagnostic for call to memcmp with UInt length parameter where we used to produce: error: cannot invoke 'memcmp' with an argument list of type '([UInt8], [UInt8], UInt)' return memcmp(left, right, UInt(left.count)) == 0 ^ note: expected an argument list of type '(UnsafePointer<Void>, UnsafePointer<Void>, Int)' but now we produce: error: cannot convert value of type 'UInt' to expected argument type 'Int' return memcmp(left, right, UInt(left.count)) == 0 ^~~~~~~~~~~~~~~~ which is more "to the point" Swift SVN r30930