Logs the fact we've found a lint error. We log where the error was found, and also our confidence in the error, that is, how certain we are this is a legitimate style regression, and not a misidentification or a use that's sometimes justified. False positives can be suppressed by the use o
(filename, linenum, category, confidence, message)
| 1696 | |
| 1697 | |
| 1698 | def Error(filename, linenum, category, confidence, message): |
| 1699 | """Logs the fact we've found a lint error. |
| 1700 | |
| 1701 | We log where the error was found, and also our confidence in the error, |
| 1702 | that is, how certain we are this is a legitimate style regression, and |
| 1703 | not a misidentification or a use that's sometimes justified. |
| 1704 | |
| 1705 | False positives can be suppressed by the use of |
| 1706 | "cpplint(category)" comments on the offending line. These are |
| 1707 | parsed into _error_suppressions. |
| 1708 | |
| 1709 | Args: |
| 1710 | filename: The name of the file containing the error. |
| 1711 | linenum: The number of the line containing the error. |
| 1712 | category: A string used to describe the "category" this bug |
| 1713 | falls under: "whitespace", say, or "runtime". Categories |
| 1714 | may have a hierarchy separated by slashes: "whitespace/indent". |
| 1715 | confidence: A number from 1-5 representing a confidence score for |
| 1716 | the error, with 5 meaning that we are certain of the problem, |
| 1717 | and 1 meaning that it could be a legitimate construct. |
| 1718 | message: The error message. |
| 1719 | """ |
| 1720 | if _ShouldPrintError(category, confidence, linenum): |
| 1721 | _cpplint_state.IncrementErrorCount(category) |
| 1722 | if _cpplint_state.output_format == 'vs7': |
| 1723 | _cpplint_state.PrintError('%s(%s): error cpplint: [%s] %s [%d]\n' % ( |
| 1724 | filename, linenum, category, message, confidence)) |
| 1725 | elif _cpplint_state.output_format == 'eclipse': |
| 1726 | sys.stderr.write('%s:%s: warning: %s [%s] [%d]\n' % ( |
| 1727 | filename, linenum, message, category, confidence)) |
| 1728 | elif _cpplint_state.output_format == 'junit': |
| 1729 | _cpplint_state.AddJUnitFailure(filename, linenum, message, category, |
| 1730 | confidence) |
| 1731 | elif _cpplint_state.output_format in ['sed', 'gsed']: |
| 1732 | if message in _SED_FIXUPS: |
| 1733 | sys.stdout.write(_cpplint_state.output_format + " -i '%s%s' %s # %s [%s] [%d]\n" % ( |
| 1734 | linenum, _SED_FIXUPS[message], filename, message, category, confidence)) |
| 1735 | else: |
| 1736 | sys.stderr.write('# %s:%s: "%s" [%s] [%d]\n' % ( |
| 1737 | filename, linenum, message, category, confidence)) |
| 1738 | else: |
| 1739 | final_message = '%s:%s: %s [%s] [%d]\n' % ( |
| 1740 | filename, linenum, message, category, confidence) |
| 1741 | sys.stderr.write(final_message) |
| 1742 | |
| 1743 | # Matches standard C++ escape sequences per 2.13.2.3 of the C++ standard. |
| 1744 | _RE_PATTERN_CLEANSE_LINE_ESCAPES = re.compile( |
no test coverage detected