瀏覽代碼

practracker: Be more careful about excluding "confusing terms"

Previously we excluded any line containing one of these terms from
consideration as the start or end of a function.  Now we're more
careful, and we only ignore these terms when they appear to be
starting a function definition.
Nick Mathewson 5 年之前
父節點
當前提交
f0302d51ab
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      scripts/maint/practracker/metrics.py

+ 4 - 4
scripts/maint/practracker/metrics.py

@@ -25,20 +25,20 @@ def get_function_lines(f):
     Return iterator which iterates over functions and returns (function name, function lines)
     """
 
-    # Skip lines with these terms since they confuse our regexp
+    # Skip lines that look like they are defining functions with these
+    # names: they aren't real function definitions.
     REGEXP_CONFUSE_TERMS = {"MOCK_IMPL", "ENABLE_GCC_WARNINGS", "ENABLE_GCC_WARNING", "DUMMY_TYPECHECK_INSTANCE",
                             "DISABLE_GCC_WARNING", "DISABLE_GCC_WARNINGS"}
 
     in_function = False
     for lineno, line in enumerate(f):
-        if any(x in line for x in REGEXP_CONFUSE_TERMS):
-            continue
-
         if not in_function:
             # find the start of a function
             m = re.match(r'^([a-zA-Z_][a-zA-Z_0-9]*),?\(', line)
             if m:
                 func_name = m.group(1)
+                if func_name in REGEXP_CONFUSE_TERMS:
+                    continue
                 func_start = lineno
                 in_function = True