[clang-format] [PR36294] AlwaysBreakAfterReturnType works incorrectly for some operat...
authormydeveloperday <mydeveloperday@gmail.com>
Tue, 12 Nov 2019 09:14:51 +0000 (09:14 +0000)
committerpaulhoad <mydeveloperday@gmail.com>
Tue, 12 Nov 2019 09:25:00 +0000 (09:25 +0000)
commita75f8d98d7ac9e557b238a229a9a2647c71feed1
tree677318b1b264b0fb180eb060328be49e0f760197
parent874b6495b5fd6d7e2dc91d6a756eea67486ea7bb
[clang-format] [PR36294] AlwaysBreakAfterReturnType works incorrectly for some operator functions

Summary:
https://bugs.llvm.org/show_bug.cgi?id=36294

Addressing bug related to returning after return type not being honoured for some operator types.

```
$ bin/clang-format --style="{BasedOnStyle: llvm, AlwaysBreakAfterReturnType: TopLevelDefinitions}" /tmp/foo.cpp
class Foo {
public:
  bool operator!() const;
  bool operator<(Foo const &) const;
  bool operator*() const;
  bool operator->() const;
  bool operator+() const;
  bool operator-() const;
  bool f() const;
};

bool Foo::operator!() const { return true; }
bool
Foo::operator<(Foo const &) const {
  return true;
}
bool Foo::operator*() const { return true; }
bool Foo::operator->() const { return true; }
bool
Foo::operator+() const {
  return true;
}
bool
Foo::operator-() const {
  return true;
}
bool
Foo::f() const {
  return true;
}
```

Reviewers: mitchell-stellar, klimek, owenpan, sammccall, rianquinn

Reviewed By: sammccall

Subscribers: merge_guards_bot, cfe-commits

Tags: #clang-format, #clang-tools-extra, #clang

Differential Revision: https://reviews.llvm.org/D69573
clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTest.cpp