]> granicus.if.org Git - clang/commitdiff
clang-format: Fix incorrect trailing return arrow detection.
authorDaniel Jasper <djasper@google.com>
Wed, 22 Oct 2014 08:42:58 +0000 (08:42 +0000)
committerDaniel Jasper <djasper@google.com>
Wed, 22 Oct 2014 08:42:58 +0000 (08:42 +0000)
Before:
  auto doSomething(Aaaaaa* aaaaaa) -> decltype(aaaaaa -> f()) {}

After:
  auto doSomething(Aaaaaa* aaaaaa) -> decltype(aaaaaa->f()) {}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220373 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp

index 1949510af7b4a8fd46501a2e797af0ad8fadc525..0f4c2e2d50a67edad2aa728d37ef355c3f47344f 100644 (file)
@@ -779,7 +779,7 @@ private:
       } else if (Current.is(tok::kw_auto)) {
         AutoFound = true;
       } else if (Current.is(tok::arrow) && AutoFound &&
-                 Line.MustBeDeclaration) {
+                 Line.MustBeDeclaration && Current.NestingLevel == 0) {
         Current.Type = TT_TrailingReturnArrow;
       } else if (Current.isOneOf(tok::star, tok::amp, tok::ampamp)) {
         Current.Type =
index 05e0fc5aa89db1623960a3653d14dd9917139572..e363c76625ee8b986ce99fbc744b772f9914595a 100644 (file)
@@ -3526,6 +3526,7 @@ TEST_F(FormatTest, TrailingReturnType) {
                "    -> alias::tensor<Order, T, mem::tag::cpu> {}");
   verifyFormat("auto SomeFunction(A aaaaaaaaaaaaaaaaaaaaa) const\n"
                "    -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}");
+  verifyFormat("auto doSomething(Aaaaaa* aaaaaa) -> decltype(aaaaaa->f()) {}");
 
   // Not trailing return types.
   verifyFormat("void f() { auto a = b->c(); }");