{"push_id":1065384160,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"42788afdb1d8e480e89d0756157eeb2b2974ce6c","before":"e3943f9da0decc6d3a903c59ffbfccca62e85ee9","commits":[{"sha":"42788afdb1d8e480e89d0756157eeb2b2974ce6c","author":{"email":"2ca028346d1d172bdf6d5bd55544812ec8ee16e2@gmail.com","name":"Bruno Cardoso Lopes"},"message":"[SemaObjC] Properly handle mix between type arguments and protocols.\n\nUnder certain conditions clang currently fails to properly diagnostic ObjectC\nparameter list when type args and protocols are mixed in the same list. This\nhappens when the first item in the parameter list is a (1) protocol, (2)\nunknown type or (3) a list of protocols/unknown types up to the first type\nargument. Fix the problem to report the proper error, example:\n\nNSArray<M, NSValue *, NSURL, NSArray <id <M>>> *foo = @[@\"a\"];\nNSNumber *bar = foo[0];\nNSLog(@\"%@\", bar);\n\n$ clang ...\nx.m:7:13: error: angle brackets contain both a type ('NSValue') and a protocol ('M')\n        NSArray<M, NSValue *, NSURL, NSArray <id <M>>> *foo = @[@\"a\"];\n                ~  ^\n\nDifferential Revision: http://reviews.llvm.org/D18997\n\nrdar://problem/22204367","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project/commits/42788afdb1d8e480e89d0756157eeb2b2974ce6c"}]}