owenpan updated this revision to Diff 369308. owenpan added a comment. Reworked the logic for handling the backward compatibility.
CHANGES SINCE LAST ACTION https://reviews.llvm.org/D108882/new/ https://reviews.llvm.org/D108882 Files: clang/lib/Format/Format.cpp clang/unittests/Format/FormatTest.cpp Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -18467,6 +18467,22 @@ PackConstructorInitializers, FormatStyle::PCIS_CurrentLine); CHECK_PARSE("PackConstructorInitializers: NextLine", PackConstructorInitializers, FormatStyle::PCIS_NextLine); + // For backward compatibility: + CHECK_PARSE("BasedOnStyle: Google\n" + "ConstructorInitializerAllOnOneLineOrOnePerLine: true\n" + "AllowAllConstructorInitializersOnNextLine: false", + PackConstructorInitializers, FormatStyle::PCIS_CurrentLine); + Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; + CHECK_PARSE("BasedOnStyle: Google\n" + "ConstructorInitializerAllOnOneLineOrOnePerLine: false", + PackConstructorInitializers, FormatStyle::PCIS_BinPack); + CHECK_PARSE("ConstructorInitializerAllOnOneLineOrOnePerLine: true\n" + "AllowAllConstructorInitializersOnNextLine: true", + PackConstructorInitializers, FormatStyle::PCIS_NextLine); + Style.PackConstructorInitializers = FormatStyle::PCIS_BinPack; + CHECK_PARSE("ConstructorInitializerAllOnOneLineOrOnePerLine: true\n" + "AllowAllConstructorInitializersOnNextLine: false", + PackConstructorInitializers, FormatStyle::PCIS_CurrentLine); Style.EmptyLineBeforeAccessModifier = FormatStyle::ELBAMS_LogicalBlock; CHECK_PARSE("EmptyLineBeforeAccessModifier: Never", Index: clang/lib/Format/Format.cpp =================================================================== --- clang/lib/Format/Format.cpp +++ clang/lib/Format/Format.cpp @@ -668,17 +668,19 @@ IO.mapOptional("ConstructorInitializerAllOnOneLineOrOnePerLine", OnCurrentLine); IO.mapOptional("AllowAllConstructorInitializersOnNextLine", OnNextLine); - if (IsGoogleOrChromium && - Style.PackConstructorInitializers == FormatStyle::PCIS_NextLine) { + if (!IsGoogleOrChromium) { + if (Style.PackConstructorInitializers == FormatStyle::PCIS_BinPack && + OnCurrentLine) { + Style.PackConstructorInitializers = OnNextLine + ? FormatStyle::PCIS_NextLine + : FormatStyle::PCIS_CurrentLine; + } + } else if (Style.PackConstructorInitializers == + FormatStyle::PCIS_NextLine) { if (!OnCurrentLine) Style.PackConstructorInitializers = FormatStyle::PCIS_BinPack; else if (!OnNextLine) Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; - } else if (Style.PackConstructorInitializers == FormatStyle::PCIS_BinPack && - OnCurrentLine) { - Style.PackConstructorInitializers = OnNextLine - ? FormatStyle::PCIS_NextLine - : FormatStyle::PCIS_CurrentLine; } IO.mapOptional("FixNamespaceComments", Style.FixNamespaceComments);
Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -18467,6 +18467,22 @@ PackConstructorInitializers, FormatStyle::PCIS_CurrentLine); CHECK_PARSE("PackConstructorInitializers: NextLine", PackConstructorInitializers, FormatStyle::PCIS_NextLine); + // For backward compatibility: + CHECK_PARSE("BasedOnStyle: Google\n" + "ConstructorInitializerAllOnOneLineOrOnePerLine: true\n" + "AllowAllConstructorInitializersOnNextLine: false", + PackConstructorInitializers, FormatStyle::PCIS_CurrentLine); + Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; + CHECK_PARSE("BasedOnStyle: Google\n" + "ConstructorInitializerAllOnOneLineOrOnePerLine: false", + PackConstructorInitializers, FormatStyle::PCIS_BinPack); + CHECK_PARSE("ConstructorInitializerAllOnOneLineOrOnePerLine: true\n" + "AllowAllConstructorInitializersOnNextLine: true", + PackConstructorInitializers, FormatStyle::PCIS_NextLine); + Style.PackConstructorInitializers = FormatStyle::PCIS_BinPack; + CHECK_PARSE("ConstructorInitializerAllOnOneLineOrOnePerLine: true\n" + "AllowAllConstructorInitializersOnNextLine: false", + PackConstructorInitializers, FormatStyle::PCIS_CurrentLine); Style.EmptyLineBeforeAccessModifier = FormatStyle::ELBAMS_LogicalBlock; CHECK_PARSE("EmptyLineBeforeAccessModifier: Never", Index: clang/lib/Format/Format.cpp =================================================================== --- clang/lib/Format/Format.cpp +++ clang/lib/Format/Format.cpp @@ -668,17 +668,19 @@ IO.mapOptional("ConstructorInitializerAllOnOneLineOrOnePerLine", OnCurrentLine); IO.mapOptional("AllowAllConstructorInitializersOnNextLine", OnNextLine); - if (IsGoogleOrChromium && - Style.PackConstructorInitializers == FormatStyle::PCIS_NextLine) { + if (!IsGoogleOrChromium) { + if (Style.PackConstructorInitializers == FormatStyle::PCIS_BinPack && + OnCurrentLine) { + Style.PackConstructorInitializers = OnNextLine + ? FormatStyle::PCIS_NextLine + : FormatStyle::PCIS_CurrentLine; + } + } else if (Style.PackConstructorInitializers == + FormatStyle::PCIS_NextLine) { if (!OnCurrentLine) Style.PackConstructorInitializers = FormatStyle::PCIS_BinPack; else if (!OnNextLine) Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; - } else if (Style.PackConstructorInitializers == FormatStyle::PCIS_BinPack && - OnCurrentLine) { - Style.PackConstructorInitializers = OnNextLine - ? FormatStyle::PCIS_NextLine - : FormatStyle::PCIS_CurrentLine; } IO.mapOptional("FixNamespaceComments", Style.FixNamespaceComments);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits