tools: update cpplint to check for inline headers

Update cpplint.py to check for inline headers when the corresponding
header is already included.

PR-URL: https://github.com/nodejs/node/pull/21521
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Ujjwal Sharma 2018-06-25 17:02:22 +05:30
parent 5842366ae8
commit fc81e80191
No known key found for this signature in database
GPG Key ID: 1FD3B47B83F46621

17
tools/cpplint.py vendored
View File

@ -1900,6 +1900,21 @@ def CheckForBadCharacters(filename, lines, error):
error(filename, linenum, 'readability/nul', 5, 'Line contains NUL byte.') error(filename, linenum, 'readability/nul', 5, 'Line contains NUL byte.')
def CheckInlineHeader(filename, include_state, error):
"""Logs an error if both a header and its inline variant are included."""
all_headers = dict(item for sublist in include_state.include_list
for item in sublist)
bad_headers = set('%s.h' % name[:-6] for name in all_headers.keys()
if name.endswith('-inl.h'))
bad_headers &= set(all_headers.keys())
for name in bad_headers:
err = '%s includes both %s and %s-inl.h' % (filename, name, name)
linenum = all_headers[name]
error(filename, linenum, 'build/include', 5, err)
def CheckForNewlineAtEOF(filename, lines, error): def CheckForNewlineAtEOF(filename, lines, error):
"""Logs an error if there is no newline char at the end of the file. """Logs an error if there is no newline char at the end of the file.
@ -5866,6 +5881,8 @@ def ProcessFileData(filename, file_extension, lines, error,
CheckForNewlineAtEOF(filename, lines, error) CheckForNewlineAtEOF(filename, lines, error)
CheckInlineHeader(filename, include_state, error)
def ProcessConfigOverrides(filename): def ProcessConfigOverrides(filename):
""" Loads the configuration files and processes the config overrides. """ Loads the configuration files and processes the config overrides.