[clang-format] Recognize Java logical shift assignment operator
authorNico Weber <nicolasweber@gmx.de>
Tue, 11 Apr 2017 15:50:04 +0000 (15:50 +0000)
committerNico Weber <nicolasweber@gmx.de>
Tue, 11 Apr 2017 15:50:04 +0000 (15:50 +0000)
commit48c94a6164192b05c5c19d07c0fda4b38e8eed5a
tree66961b967d4b81e78f8a02c6be48ff97f4e42f65
parent46103e0ede41cef3ddce5f5194c258f6de607acd
[clang-format] Recognize Java logical shift assignment operator

At present, clang-format mangles Java containing logical right shift operators
('>>>=' or '>>>'), splitting them in two, resulting in invalid code:

 public class Minimal {
   public void func(String args) {
     int i = 42;
-    i >>>= 1;
+    i >> >= 1;
     return i;
   }
 }

This adds both forms of logical right shift to the FormatTokenLexer, so
clang-format won't attempt to split them and insert bogus whitespace.

https://reviews.llvm.org/D31652
Patch from Richard Bradfield <bradfier@fstab.me>!

llvm-svn: 299952
clang/lib/Format/FormatTokenLexer.cpp
clang/unittests/Format/FormatTestJava.cpp