This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG480a1fab72f4: [clang-format] Fix incorrect alignment of operator= overloads. (authored by glotchimo, committed by curdeius).
Changed prior to commit: https://reviews.llvm.org/D117421?vs=400696&id=401129#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117421/new/ https://reviews.llvm.org/D117421 Files: clang/lib/Format/WhitespaceManager.cpp clang/unittests/Format/FormatTest.cpp Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -16266,6 +16266,34 @@ verifyFormat("int oneTwoThree = 123; // comment\n" "int oneTwo = 12; // comment", Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator=() {", + Alignment); + verifyFormat("int f() = default; // comment\n" + "int &operator() = default; // comment\n" + "int &operator=() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator==() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator<=() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator!=() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator=();", + Alignment); + verifyFormat("/* long long padding */ int f() = default;\n" + "int &operator() = default;\n" + "int &operator/**/ =();", + Alignment); // Bug 25167 /* Uncomment when fixed Index: clang/lib/Format/WhitespaceManager.cpp =================================================================== --- clang/lib/Format/WhitespaceManager.cpp +++ clang/lib/Format/WhitespaceManager.cpp @@ -731,6 +731,11 @@ if (&C != &Changes.back() && (&C + 1)->NewlinesBefore > 0) return false; + // Do not align operator= overloads. + FormatToken *Previous = C.Tok->getPreviousNonComment(); + if (Previous && Previous->is(tok::kw_operator)) + return false; + return C.Tok->is(tok::equal); }, Changes, /*StartAt=*/0, Style.AlignConsecutiveAssignments);
Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -16266,6 +16266,34 @@ verifyFormat("int oneTwoThree = 123; // comment\n" "int oneTwo = 12; // comment", Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator=() {", + Alignment); + verifyFormat("int f() = default; // comment\n" + "int &operator() = default; // comment\n" + "int &operator=() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator==() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator<=() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator!=() {", + Alignment); + verifyFormat("int f() = default;\n" + "int &operator() = default;\n" + "int &operator=();", + Alignment); + verifyFormat("/* long long padding */ int f() = default;\n" + "int &operator() = default;\n" + "int &operator/**/ =();", + Alignment); // Bug 25167 /* Uncomment when fixed Index: clang/lib/Format/WhitespaceManager.cpp =================================================================== --- clang/lib/Format/WhitespaceManager.cpp +++ clang/lib/Format/WhitespaceManager.cpp @@ -731,6 +731,11 @@ if (&C != &Changes.back() && (&C + 1)->NewlinesBefore > 0) return false; + // Do not align operator= overloads. + FormatToken *Previous = C.Tok->getPreviousNonComment(); + if (Previous && Previous->is(tok::kw_operator)) + return false; + return C.Tok->is(tok::equal); }, Changes, /*StartAt=*/0, Style.AlignConsecutiveAssignments);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits