diff --git a/scripts/gmock_doctor.py b/scripts/gmock_doctor.py index f7c3920f..e6e6a521 100755 --- a/scripts/gmock_doctor.py +++ b/scripts/gmock_doctor.py @@ -175,11 +175,15 @@ def _NeedToReturnReferenceDiagnoser(msg): r'note: in instantiation of function template specialization ' r'\'testing::internal::ReturnAction<(?P.*)>' r'::operator Action<.*>\' requested here') + clang11_re = (r'use_ReturnRef_instead_of_Return_to_return_a_reference.*' + r'(.*\n)*?' + _CLANG_NON_GMOCK_FILE_LINE_RE) + diagnosis = """ You are using a Return() action in a function that returns a reference to %(type)s. Please use ReturnRef() instead.""" return _GenericDiagnoser('NRR', 'Need to Return Reference', [(clang_regex, diagnosis), + (clang11_re, diagnosis % {'type': 'a type'}), (gcc_regex, diagnosis % {'type': 'a type'})], msg) @@ -517,12 +521,17 @@ def _WrongMockMethodMacroDiagnoser(msg): r'(?P=file):(?P=line):(?P=column): error: too few arguments ' r'to function call, expected (?P\d+), ' r'have (?P\d+)') + clang11_re = (_CLANG_NON_GMOCK_FILE_LINE_RE + + r'.*this_method_does_not_take_' + r'(?P\d+)_argument.*') diagnosis = """ You are using MOCK_METHOD%(wrong_args)s to define a mock method that has %(args)s arguments. Use MOCK_METHOD%(args)s (or MOCK_CONST_METHOD%(args)s, MOCK_METHOD%(args)s_T, MOCK_CONST_METHOD%(args)s_T as appropriate) instead.""" return _GenericDiagnoser('WMM', 'Wrong MOCK_METHODn Macro', [(gcc_regex, diagnosis), + (clang11_re, diagnosis % {'wrong_args': 'm', + 'args': 'n'}), (clang_regex, diagnosis)], msg)