Reformat lines if they were "moved around".
authorDaniel Jasper <djasper@google.com>
Mon, 18 Feb 2013 13:08:03 +0000 (13:08 +0000)
committerDaniel Jasper <djasper@google.com>
Mon, 18 Feb 2013 13:08:03 +0000 (13:08 +0000)
commit55d7ba6b661974ae69b8a3012e5bb02d03b6735c
tree4aa26053cde2289ce3a3dea18e0db694d876ff95
parent5065bc4b2c3e13be9b1186dcdde7471ffb9e326f
Reformat lines if they were "moved around".

An unwrapped line can get moved around if there is no newline before
it and the previous line was formatted.

Example:

  template<typename T>  // Cursor is on this line when hitting "format"
  T *getFETokenInfo() const { return static_cast<T*>(FETokenInfo); }

"return .." is the second unwrapped line in this scenario. I does not
touch any reformatted region. Thus, the result of formatting is:

  template <typename T> T *getFETokenInfo() const { return static_cast<T *>(FETokenInfo); }

After second format (and arguably desired end-result):

  template <typename T> T *getFETokenInfo() const {
      return static_cast<T *>(FETokenInfo);
  }

This fixes: llvm.org/PR15060.

llvm-svn: 175440
clang/lib/Format/Format.cpp
clang/unittests/Format/FormatTest.cpp