When an initializer list is used within a marco argument, each comma is the list is treated as a macro argument separator. When this happens, the only error message is "too many macro arguments provided". This patch changes the handling of function-like macros to give additional notes detailing the problems.
For a macro FOO(vector<int>{1,2,3}, 3), it will suggest parenthesis to preserve the initializer list with the corrected code as FOO((vector<int>{1,2,3}), 3).
For a macro such as FOO( {1,2,3} ), it will provide a different note saying that initializer lists cannot be used as macro arguments. This is because adding parentheses around the braces would make it no longer an initializer list.
Should be "hasMaxFixItHints" presumably?