comparison contrib/check-code.py @ 30810:df5d3734b3df

check-code: reject module-level @cachefunc Module-level @cachefunc usage is risky because it can easily create a memory "leak". Let's reject it completely for now. If a valid usage comes up in the future, we can always improve the check or reconsider.
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 13 Jan 2017 10:11:37 -0800
parents 01721d382c16
children 6a70cf94d1b5
comparison
equal deleted inserted replaced
30809:8614546154cb 30810:df5d3734b3df
323 "use pathutil.normasprefix(path) instead of os.path.join(path, '')"), 323 "use pathutil.normasprefix(path) instead of os.path.join(path, '')"),
324 (r'\s0[0-7]+\b', 'legacy octal syntax; use "0o" prefix instead of "0"'), 324 (r'\s0[0-7]+\b', 'legacy octal syntax; use "0o" prefix instead of "0"'),
325 # XXX only catch mutable arguments on the first line of the definition 325 # XXX only catch mutable arguments on the first line of the definition
326 (r'def.*[( ]\w+=\{\}', "don't use mutable default arguments"), 326 (r'def.*[( ]\w+=\{\}', "don't use mutable default arguments"),
327 (r'\butil\.Abort\b', "directly use error.Abort"), 327 (r'\butil\.Abort\b', "directly use error.Abort"),
328 (r'^@(\w*\.)?cachefunc', "module-level @cachefunc is risky, please avoid"),
328 (r'^import Queue', "don't use Queue, use util.queue + util.empty"), 329 (r'^import Queue', "don't use Queue, use util.queue + util.empty"),
329 (r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"), 330 (r'^import cStringIO', "don't use cStringIO.StringIO, use util.stringio"),
330 (r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"), 331 (r'^import urllib', "don't use urllib, use util.urlreq/util.urlerr"),
331 (r'^import SocketServer', "don't use SockerServer, use util.socketserver"), 332 (r'^import SocketServer', "don't use SockerServer, use util.socketserver"),
332 (r'^import urlparse', "don't use urlparse, use util.urlparse"), 333 (r'^import urlparse', "don't use urlparse, use util.urlparse"),