diff options
| author | Daniel Jasper <djasper@google.com> | 2014-10-17 14:37:40 +0000 |
|---|---|---|
| committer | Daniel Jasper <djasper@google.com> | 2014-10-17 14:37:40 +0000 |
| commit | da07a72928c58204a4234cd8f69203424a970856 (patch) | |
| tree | f155a89bd416f8641544740ba73dfe969bd29bfb | |
| parent | 238692beb90235464e82247d3d7fb5a387eeb5c2 (diff) | |
| download | bcm5719-llvm-da07a72928c58204a4234cd8f69203424a970856.tar.gz bcm5719-llvm-da07a72928c58204a4234cd8f69203424a970856.zip | |
clang-format: Prefer breaking before trailing return arrows.
Before:
auto SomeFunction(
A aaaaaaaaaaaaaaaaaaaaa) const -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}
After:
auto SomeFunction(A aaaaaaaaaaaaaaaaaaaaa) const
-> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}
llvm-svn: 220043
| -rw-r--r-- | clang/lib/Format/FormatToken.h | 3 | ||||
| -rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 2 | ||||
| -rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Format/FormatToken.h b/clang/lib/Format/FormatToken.h index 38f157776f3..dc2c8a466ef 100644 --- a/clang/lib/Format/FormatToken.h +++ b/clang/lib/Format/FormatToken.h @@ -325,7 +325,8 @@ struct FormatToken { /// \brief Returns \c true if this is a "." or "->" accessing a member. bool isMemberAccess() const { return isOneOf(tok::arrow, tok::period, tok::arrowstar) && - Type != TT_DesignatedInitializerPeriod; + Type != TT_DesignatedInitializerPeriod && + Type != TT_TrailingReturnArrow; } bool isUnaryOperator() const { diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 14382021b52..7e589c7a649 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1902,7 +1902,7 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line, return true; return Left.isOneOf(tok::comma, tok::coloncolon, tok::semi, tok::l_brace, tok::kw_class, tok::kw_struct) || - Right.isMemberAccess() || + Right.isMemberAccess() || Right.Type == TT_TrailingReturnArrow || Right.isOneOf(tok::lessless, tok::colon, tok::l_square, tok::at) || (Left.is(tok::r_paren) && Right.isOneOf(tok::identifier, tok::kw_const)) || diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index aebfef6fbea..b669795534d 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -3514,6 +3514,8 @@ TEST_F(FormatTest, TrailingReturnType) { verifyFormat("template <size_t Order, typename T>\n" "auto load_img(const std::string &filename)\n" " -> alias::tensor<Order, T, mem::tag::cpu> {}"); + verifyFormat("auto SomeFunction(A aaaaaaaaaaaaaaaaaaaaa) const\n" + " -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}"); // Not trailing return types. verifyFormat("void f() { auto a = b->c(); }"); |

