1*89a1d03eSRichard // RUN: %check_clang_tidy %s readability-simplify-boolean-expr %t -- -config="{CheckOptions: [{key: "readability-simplify-boolean-expr.ChainedConditionalAssignment", value: true}]}" --
2*89a1d03eSRichard 
chained_conditional_compound_assignment(int i)3*89a1d03eSRichard void chained_conditional_compound_assignment(int i) {
4*89a1d03eSRichard   bool b;
5*89a1d03eSRichard   if (i < 0) {
6*89a1d03eSRichard     b = true;
7*89a1d03eSRichard   } else if (i < 10) {
8*89a1d03eSRichard     b = false;
9*89a1d03eSRichard   } else if (i > 20) {
10*89a1d03eSRichard     b = true;
11*89a1d03eSRichard   } else {
12*89a1d03eSRichard     b = false;
13*89a1d03eSRichard   }
14*89a1d03eSRichard   // CHECK-MESSAGES: :[[@LINE-4]]:9: warning: redundant boolean literal in conditional assignment [readability-simplify-boolean-expr]
15*89a1d03eSRichard   // CHECK-FIXES:      {{^}}  } else if (i < 10) {{{$}}
16*89a1d03eSRichard   // CHECK-FIXES-NEXT: {{^}}    b = false;{{$}}
17*89a1d03eSRichard   // CHECK-FIXES-NEXT: {{^}}  } else b = i > 20;{{$}}
18*89a1d03eSRichard }
19*89a1d03eSRichard 
chained_conditional_assignment(int i)20*89a1d03eSRichard void chained_conditional_assignment(int i) {
21*89a1d03eSRichard   bool b;
22*89a1d03eSRichard   if (i < 0)
23*89a1d03eSRichard     b = true;
24*89a1d03eSRichard   else if (i < 10)
25*89a1d03eSRichard     b = false;
26*89a1d03eSRichard   else if (i > 20)
27*89a1d03eSRichard     b = true;
28*89a1d03eSRichard   else
29*89a1d03eSRichard     b = false;
30*89a1d03eSRichard   // CHECK-MESSAGES: :[[@LINE-3]]:9: warning: {{.*}} in conditional assignment
31*89a1d03eSRichard   // CHECK-FIXES:      {{^}}  else if (i < 10)
32*89a1d03eSRichard   // CHECK-FIXES-NEXT: {{^}}    b = false;
33*89a1d03eSRichard   // CHECK-FIXES-NEXT: {{^}}  else b = i > 20;
34*89a1d03eSRichard }
35