[PATCH] D129982: [clang-format][NFC] Refactor RequiresDoesNotChangeParsingOfTheRest

2022-07-20 Thread Owen Pan via Phabricator via cfe-commits
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

2022-07-19 Thread Owen Pan via Phabricator via cfe-commits
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

2022-07-18 Thread Björn Schäpers via Phabricator via cfe-commits
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

2022-07-17 Thread Owen Pan via Phabricator via cfe-commits
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)