[PATCH] D129982: [clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGa4c62f66545d: [clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest (authored by owenpan). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D129982/new/ https://reviews.llvm.org/D129982 Files: clang/unittests/Format/TokenAnnotatorTest.cpp Index: clang/unittests/Format/TokenAnnotatorTest.cpp === --- clang/unittests/Format/TokenAnnotatorTest.cpp +++ clang/unittests/Format/TokenAnnotatorTest.cpp @@ -549,323 +549,171 @@ } TEST_F(TokenAnnotatorTest, RequiresDoesNotChangeParsingOfTheRest) { - auto NumberOfAdditionalRequiresClauseTokens = 5u; - auto NumberOfTokensBeforeRequires = 5u; - - auto BaseTokens = annotate("template\n" - "T Pi = 3.14;"); - auto ConstrainedTokens = annotate("template\n" -" requires Foo\n" -"T Pi = 3.14;"); - - auto NumberOfBaseTokens = 11u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; + const char *BaseCode = nullptr; + const char *ConstrainedCode = nullptr; + auto BaseTokenCount = 0u; + auto RequiresTokenCount = 0u; + auto PrefixTokenCount = 0u; + + auto TestRequires = [&](int Line) { +const auto BaseTokens = annotate(BaseCode); +const auto ConstrainedTokens = annotate(ConstrainedCode); + +#define LINE " (Line " << Line << ')' + +ASSERT_EQ(BaseTokens.size(), BaseTokenCount) << BaseTokens << LINE; +ASSERT_EQ(ConstrainedTokens.size(), BaseTokenCount + RequiresTokenCount) +<< LINE; + +for (auto I = 0u; I < BaseTokenCount; ++I) { + EXPECT_EQ( + *BaseTokens[I], + *ConstrainedTokens[I < PrefixTokenCount ? I : I + RequiresTokenCount]) + << I << LINE; } - } - BaseTokens = annotate("template\n" -"struct Bar;"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "struct Bar;"); - NumberOfBaseTokens = 9u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"struct Bar {" -" T foo();\n" -" T bar();\n" -"};"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "struct Bar {" - " T foo();\n" - " T bar();\n" - "};"); - NumberOfBaseTokens = 21u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"Bar(T) -> Bar;"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "Bar(T) -> Bar;"); - NumberOfBaseTokens = 16u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) -
[PATCH] D129982: [clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest
owenpan updated this revision to Diff 445725. owenpan added a comment. Uploaded the correct diff. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D129982/new/ https://reviews.llvm.org/D129982 Files: clang/unittests/Format/TokenAnnotatorTest.cpp Index: clang/unittests/Format/TokenAnnotatorTest.cpp === --- clang/unittests/Format/TokenAnnotatorTest.cpp +++ clang/unittests/Format/TokenAnnotatorTest.cpp @@ -549,323 +549,171 @@ } TEST_F(TokenAnnotatorTest, RequiresDoesNotChangeParsingOfTheRest) { - auto NumberOfAdditionalRequiresClauseTokens = 5u; - auto NumberOfTokensBeforeRequires = 5u; - - auto BaseTokens = annotate("template\n" - "T Pi = 3.14;"); - auto ConstrainedTokens = annotate("template\n" -" requires Foo\n" -"T Pi = 3.14;"); - - auto NumberOfBaseTokens = 11u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; + const char *BaseCode = nullptr; + const char *ConstrainedCode = nullptr; + auto BaseTokenCount = 0u; + auto RequiresTokenCount = 0u; + auto PrefixTokenCount = 0u; + + auto TestRequires = [&](int Line) { +const auto BaseTokens = annotate(BaseCode); +const auto ConstrainedTokens = annotate(ConstrainedCode); + +#define LINE " (Line " << Line << ')' + +ASSERT_EQ(BaseTokens.size(), BaseTokenCount) << BaseTokens << LINE; +ASSERT_EQ(ConstrainedTokens.size(), BaseTokenCount + RequiresTokenCount) +<< LINE; + +for (auto I = 0u; I < BaseTokenCount; ++I) { + EXPECT_EQ( + *BaseTokens[I], + *ConstrainedTokens[I < PrefixTokenCount ? I : I + RequiresTokenCount]) + << I << LINE; } - } - BaseTokens = annotate("template\n" -"struct Bar;"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "struct Bar;"); - NumberOfBaseTokens = 9u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"struct Bar {" -" T foo();\n" -" T bar();\n" -"};"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "struct Bar {" - " T foo();\n" - " T bar();\n" - "};"); - NumberOfBaseTokens = 21u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"Bar(T) -> Bar;"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "Bar(T) -> Bar;"); - NumberOfBaseTokens = 16u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"T foo();"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n"
[PATCH] D129982: [clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest
HazardyKnusperkeks accepted this revision. HazardyKnusperkeks added a comment. Not the way I would have gone. I'm not fond of the allocations for the strings. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D129982/new/ https://reviews.llvm.org/D129982 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D129982: [clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest
owenpan created this revision. owenpan added reviewers: HazardyKnusperkeks, curdeius, MyDeveloperDay. owenpan added a project: clang-format. Herald added a project: All. owenpan requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D129982 Files: clang/unittests/Format/TokenAnnotatorTest.cpp Index: clang/unittests/Format/TokenAnnotatorTest.cpp === --- clang/unittests/Format/TokenAnnotatorTest.cpp +++ clang/unittests/Format/TokenAnnotatorTest.cpp @@ -549,259 +549,107 @@ } TEST_F(TokenAnnotatorTest, RequiresDoesNotChangeParsingOfTheRest) { - auto NumberOfAdditionalRequiresClauseTokens = 5u; - auto NumberOfTokensBeforeRequires = 5u; - - auto BaseTokens = annotate("template\n" - "T Pi = 3.14;"); - auto ConstrainedTokens = annotate("template\n" -" requires Foo\n" -"T Pi = 3.14;"); - - auto NumberOfBaseTokens = 11u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; + StringRef Requires; + StringRef Prefix; + StringRef Suffix; + auto RequiresTokenCount = 0u; + auto PrefixTokenCount = 0u; + auto SuffixTokenCount = 0u; + + auto TestRequires = [&](int Line) { +const auto BaseTokenCount = PrefixTokenCount + SuffixTokenCount; + +auto BaseCode = std::string(Prefix); +BaseCode += Suffix; +auto BaseTokens = annotate(BaseCode); + +auto ConstrainedCode = std::string(Prefix); +ConstrainedCode += Requires; +ConstrainedCode += Suffix; +auto ConstrainedTokens = annotate(ConstrainedCode); + +ASSERT_EQ(BaseTokens.size(), BaseTokenCount) +<< BaseTokens << " (Line " << Line << ')'; +ASSERT_EQ(ConstrainedTokens.size(), BaseTokenCount + RequiresTokenCount) +<< ConstrainedTokens << " (Line " << Line << ')'; + +for (auto I = 0u; I < BaseTokenCount; ++I) { + EXPECT_EQ( + *BaseTokens[I], + *ConstrainedTokens[I < PrefixTokenCount ? I : I + RequiresTokenCount]) + << I << " (Line " << Line << ')'; } - } - - BaseTokens = annotate("template\n" -"struct Bar;"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "struct Bar;"); - NumberOfBaseTokens = 9u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"struct Bar {" -" T foo();\n" -" T bar();\n" -"};"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "struct Bar {" - " T foo();\n" - " T bar();\n" - "};"); - NumberOfBaseTokens = 21u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I) { -if (I < NumberOfTokensBeforeRequires) { - EXPECT_EQ(*BaseTokens[I], *ConstrainedTokens[I]) << I; -} else { - EXPECT_EQ(*BaseTokens[I], -*ConstrainedTokens[I + NumberOfAdditionalRequiresClauseTokens]) - << I; -} - } - - BaseTokens = annotate("template\n" -"Bar(T) -> Bar;"); - ConstrainedTokens = annotate("template\n" - " requires Foo\n" - "Bar(T) -> Bar;"); - NumberOfBaseTokens = 16u; - - ASSERT_EQ(BaseTokens.size(), NumberOfBaseTokens) << BaseTokens; - ASSERT_EQ(ConstrainedTokens.size(), -NumberOfBaseTokens + NumberOfAdditionalRequiresClauseTokens) - << ConstrainedTokens; - - for (auto I = 0u; I < NumberOfBaseTokens; ++I)