From 2eb23b73f001e475c604652732f1a156f252352d Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Thu, 11 Apr 2013 08:48:20 +0000 Subject: [PATCH] Fix formatting of overloaded assignment operators. Before: SomeType &operator=(const SomeType & S); After: SomeType &operator=(const SomeType &S); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179270 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 3 ++- unittests/Format/FormatTest.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 42cbf04aec..08d9b10694 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -563,7 +563,8 @@ private: }; void determineTokenType(AnnotatedToken &Current) { - if (getPrecedence(Current) == prec::Assignment) { + if (getPrecedence(Current) == prec::Assignment && + (!Current.Parent || Current.Parent->isNot(tok::kw_operator))) { Contexts.back().IsExpression = true; for (AnnotatedToken *Previous = Current.Parent; Previous && Previous->isNot(tok::comma); diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 5b5f483c62..09fbce830e 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -2374,6 +2374,7 @@ TEST_F(FormatTest, UndestandsOverloadedOperators) { " const aaaaaaaaaaaaaaaaaaaaa &right) {\n" " return left.group < right.group;\n" "}"); + verifyFormat("SomeType &operator=(const SomeType &S);"); verifyGoogleFormat("operator void*();"); verifyGoogleFormat("operator SomeType>();"); -- 2.40.0