[PATCH] D79414: [clang-format] C# always regards && as a binary operator
Jonathan B Coe via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 5 06:25:50 PDT 2020
jbcoe created this revision.
jbcoe added reviewers: krasimir, MyDeveloperDay.
jbcoe added a project: clang-format.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
MyDeveloperDay accepted this revision.
MyDeveloperDay added a comment.
This revision is now accepted and ready to land.
LGTM, thank you
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D79414
Files:
clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTestCSharp.cpp
Index: clang/unittests/Format/FormatTestCSharp.cpp
===================================================================
--- clang/unittests/Format/FormatTestCSharp.cpp
+++ clang/unittests/Format/FormatTestCSharp.cpp
@@ -706,6 +706,9 @@
verifyFormat(R"(char[,,] rawCharArray = MakeCharacterGrid();)", Style);
verifyFormat(R"(var (key, value))", Style);
+ // `&&` is not seen as a reference.
+ verifyFormat(R"(A == typeof(X) && someBool)", Style);
+
// Not seen as a C-style cast.
verifyFormat(R"(//
foreach ((A a, B b) in someList) {
Index: clang/lib/Format/TokenAnnotator.cpp
===================================================================
--- clang/lib/Format/TokenAnnotator.cpp
+++ clang/lib/Format/TokenAnnotator.cpp
@@ -1852,6 +1852,10 @@
if (Style.Language == FormatStyle::LK_JavaScript)
return TT_BinaryOperator;
+ // && in C# must be a binary operator.
+ if (Style.isCSharp() && Tok.is(tok::ampamp))
+ return TT_BinaryOperator;
+
const FormatToken *PrevToken = Tok.getPreviousNonComment();
if (!PrevToken)
return TT_UnaryOperator;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79414.262086.patch
Type: text/x-patch
Size: 1100 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200505/2bc3bd9c/attachment-0001.bin>
More information about the cfe-commits
mailing list