Skip to content

tools: fix check-imports.py to match on word boundaries

Rodrigo Muino Tomonari requested to merge github/fork/richardlau/cpplint into master

check-imports.py was missing some unused using statements as it was not matching on word boundaries (e.g. MaybeLocal was considered a use of Local). Fix that and add some unit tests (which required the script to be renamed to drop the - so it could be imported into the test script).

Refs: https://github.com/nodejs/node/issues/29226

Marking as blocked as now the script is fixed it reveals the following unused imports:

-bash-4.2$ make lint-cpp
Running C++ linter...
File "src/node.cc" does not use "HandleScope"
File "src/node.cc" does not use "Maybe"
File "src/inspector_agent.cc" does not use "String"
File "src/inspector_agent.cc" does not use "Task"
File "src/node_contextify.cc" does not use "ArrayBuffer"
File "src/node_dtrace.cc" does not use "String"
File "src/heap_utils.cc" does not use "JSON"
File "src/node_util.cc" does not use "Function"
File "src/tcp_wrap.cc" does not use "HandleScope"
File "src/module_wrap.cc" does not use "Just"
File "src/module_wrap.cc" does not use "Maybe"
File "src/node_zlib.cc" does not use "Array"
File "src/node_zlib.cc" does not use "Uint32"
File "src/pipe_wrap.cc" does not use "HandleScope"
File "src/tls_wrap.cc" does not use "Maybe"
File "src/tty_wrap.cc" does not use "Function"
File "src/inspector_js_api.cc" does not use "Boolean"
File "src/node_perf.cc" does not use "Array"
File "src/node_perf.cc" does not use "Name"
File "src/node_perf.cc" does not use "Uint32Array"
File "src/node_http2.cc" does not use "Float64Array"
File "src/node_http2.cc" does not use "Uint32"
File "src/node_http2.cc" does not use "Uint32Array"
File "src/node_messaging.cc" does not use "Exception"
File "src/node_options.cc" does not use "String"
File "src/node_credentials.cc" does not use "Function"
File "src/node_errors.cc" does not use "Number"
File "src/node_native_module.cc" does not use "HandleScope"
File "src/node_native_module.cc" does not use "Maybe"
File "src/node_native_module.cc" does not use "Script"
File "src/node_process_methods.cc" does not use "Function"
File "src/node_process_methods.cc" does not use "Name"
File "src/node_process_object.cc" does not use "HandleScope"
File "src/node_process_object.cc" does not use "Just"
File "src/node_report.cc" does not use "Number"
File "src/node_report.cc" does not use "StackTrace"
File "src/node_report.cc" does not use "Value"
File "src/node_report_module.cc" does not use "Boolean"
File "src/node_report_module.cc" does not use "Function"
File "src/node_dir.cc" does not use "Function"
File "src/node_main_instance.cc" does not use "Object"
File "src/node_native_module_env.cc" does not use "Maybe"
make: *** [tools/.cpplintstamp] Error 1
-bash-4.2$

https://github.com/nodejs/node/pull/33261 will fix the ones in src/node.cc. Anyone have opinions on the best way to fix the remainder commit-wise? Should we fix them all in one commit, or try to group them up (e.g. src/node_report.cc and src/node_report_module.cc are the report subsystem)? @nodejs/releasers would it be easier to backport if they were all fixed up under one pull request or under several smaller pull requests?

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines

Merge request reports

Loading