[all-commits] [llvm/llvm-project] c2ec5d: [clang-format] Left/Right alignment fixer can caus...

MyDeveloperDay via All-commits all-commits at lists.llvm.org
Sat Sep 25 09:36:19 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c2ec5dd209532b1d618958ade6a7d550a0c31ea5
      https://github.com/llvm/llvm-project/commit/c2ec5dd209532b1d618958ade6a7d550a0c31ea5
  Author: mydeveloperday <mydeveloperday at gmail.com>
  Date:   2021-09-25 (Sat, 25 Sep 2021)

  Changed paths:
    M clang/lib/Format/QualifierAlignmentFixer.cpp
    M clang/unittests/Format/QualifierFixerTest.cpp

  Log Message:
  -----------
  [clang-format] Left/Right alignment fixer can cause false positive replacements when they don't actually change anything

Earlier during the development of {D69764} I felt it was no longer necessary to
ensure we were not trying to change code which didn't need to change
and we felt this could be removed, however I'd like to bring this back for now
as I am seeing some false positives in terms of the "replacements"

What I see is the generation of a replacement which is a "No Op" on the original
code, I think this comes about because of the merging of replacements:

```
static const a;
->
const static a;
->
static const a;
```

The replacements don't really merge, in such a way as to identify when we have gone
back to the original

Also remove the Penalty as I'm not using it (and it became marked as set and no used,
I'd rather get rid of it if it means nothing)

I think we need to do this step for now, as many people use the --output-replacements-xml
to identify that the file "needs a clang-format"

The same can be seen with the -n or --dry-run option as this uses the replacements
to drive the error/warning output.

Reviewed By: HazardyKnusperkeks

Differential Revision: https://reviews.llvm.org/D110392




More information about the All-commits mailing list