diff options
Diffstat (limited to 'compilerplugins/clang/unusedfields.py')
-rwxr-xr-x | compilerplugins/clang/unusedfields.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/compilerplugins/clang/unusedfields.py b/compilerplugins/clang/unusedfields.py index 9b313c89c9eb..6503b63fb626 100755 --- a/compilerplugins/clang/unusedfields.py +++ b/compilerplugins/clang/unusedfields.py @@ -246,14 +246,18 @@ for d in (potentialClasses - excludedClasses): def natural_sort_key(s, _nsre=re.compile('([0-9]+)')): return [int(text) if text.isdigit() else text.lower() for text in re.split(_nsre, s)] +# sort by both the source-line and the datatype, so the output file ordering is stable +# when we have multiple items on the same source line +def v_sort_key(v): + return natural_sort_key(v[1]) + [v[0]] # sort results by name and line number -tmp1list = sorted(untouchedSet, key=lambda v: natural_sort_key(v[1])) -tmp2list = sorted(writeonlySet, key=lambda v: natural_sort_key(v[1])) -tmp3list = sorted(canBePrivateSet, key=lambda v: natural_sort_key(v[1])) -tmp4list = sorted(readonlySet, key=lambda v: natural_sort_key(v[1])) -tmp5list = sorted(onlyUsedInConstructorSet, key=lambda v: natural_sort_key(v[1])) -tmp6list = sorted(allFieldsCanBePrivateSet, key=lambda v: natural_sort_key(v[1])) +tmp1list = sorted(untouchedSet, key=lambda v: v_sort_key(v)) +tmp2list = sorted(writeonlySet, key=lambda v: v_sort_key(v)) +tmp3list = sorted(canBePrivateSet, key=lambda v: v_sort_key(v)) +tmp4list = sorted(readonlySet, key=lambda v: v_sort_key(v)) +tmp5list = sorted(onlyUsedInConstructorSet, key=lambda v: v_sort_key(v)) +tmp6list = sorted(allFieldsCanBePrivateSet, key=lambda v: v_sort_key(v)) # print out the results with open("compilerplugins/clang/unusedfields.untouched.results", "wt") as f: |