diff options
author | Alexander Kornienko <alexfh@google.com> | 2015-07-01 12:39:40 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2015-07-01 12:39:40 +0000 |
commit | 6ae400d12256de0547c1b06919d126f664c78d7e (patch) | |
tree | 2c16f7333e11b0f4c9bb2ee046f8b7a89ffd6b94 /clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp | |
parent | def554db451cafb36b71d95823eaf65538b0a3b7 (diff) | |
download | bcm5719-llvm-6ae400d12256de0547c1b06919d126f664c78d7e.tar.gz bcm5719-llvm-6ae400d12256de0547c1b06919d126f664c78d7e.zip |
[clang-tidy] Enhance clang-tidy readability-simplify-boolean-expr...
Enhance clang-tidy readability-simplify-boolean-expr to handle 'if (e) return
true; return false;' and improve replacement expressions.
This changeset extends the simplify boolean expression check in clang-tidy to
simplify if (e) return true; return false; to return e; (note the lack of an
else clause on the if statement.) By default, chained conditional assignment is
left unchanged, unless a configuration parameter is set to non-zero to override
this behavior.
It also improves the handling of replacement expressions to apply
static_cast<bool>(expr) when expr is not of type bool.
http://reviews.llvm.org/D9810
Patch by Richard Thomson!
llvm-svn: 241155
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp index d50c13ac28c..a63d7cfc531 100644 --- a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp @@ -31,3 +31,65 @@ bool chained_conditional_return(int i) { // CHECK-FIXES-NEXT: {{^}} return false; // CHECK-FIXES-NEXT: {{^}} else return i > 20; } + +bool chained_simple_if_return(int i) { + if (i < 5) + return true; + if (i > 10) + return true; + return false; +} +// CHECK-MESSAGES: :[[@LINE-3]]:12: warning: {{.*}} in conditional return +// CHECK-FIXES: {{^}}bool chained_simple_if_return(int i) {{{$}} +// CHECK-FIXES: {{^}} if (i < 5){{$}} +// CHECK-FIXES: {{^ return true;$}} +// CHECK-FIXES: {{^ return i > 10;$}} +// CHECK-FIXES: {{^}$}} + +bool chained_simple_if_return_negated(int i) { + if (i < 5) + return false; + if (i > 10) + return false; + return true; +} +// CHECK-MESSAGES: :[[@LINE-3]]:12: warning: {{.*}} in conditional return +// CHECK-FIXES: {{^}}bool chained_simple_if_return_negated(int i) {{{$}} +// CHECK-FIXES: {{^}} if (i < 5){{$}} +// CHECK-FIXES: {{^ return false;$}} +// CHECK-FIXES: {{^ return i <= 10;$}} +// CHECK-FIXES: {{^}$}} + +bool complex_chained_if_return_return(int i) { + if (i < 5) { + return true; + } + if (i > 10) { + return true; + } + return false; +} +// CHECK-MESSAGES: :[[@LINE-4]]:12: warning: {{.*}} in conditional return +// CHECK-FIXES: {{^}}bool complex_chained_if_return_return(int i) {{{$}} +// CHECK-FIXES: {{^}} if (i < 5) {{{$}} +// CHECK-FIXES: {{^}} return true;{{$}} +// CHECK-FIXES: {{^}} }{{$}} +// CHECK-FIXES: {{^ return i > 10;$}} +// CHECK-FIXES: {{^}$}} + +bool complex_chained_if_return_return_negated(int i) { + if (i < 5) { + return false; + } + if (i > 10) { + return false; + } + return true; +} +// CHECK-MESSAGES: :[[@LINE-4]]:12: warning: {{.*}} in conditional return +// CHECK-FIXES: {{^}}bool complex_chained_if_return_return_negated(int i) {{{$}} +// CHECK-FIXES: {{^}} if (i < 5) {{{$}} +// CHECK-FIXES: {{^}} return false;{{$}} +// CHECK-FIXES: {{^}} }{{$}} +// CHECK-FIXES: {{^ return i <= 10;$}} +// CHECK-FIXES: {{^}$}} |