View Javadoc
1   /*
2   UnnecessaryParentheses
3   tokens = (default)EXPR, IDENT, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, \
4            STRING_LITERAL, LITERAL_NULL, LITERAL_FALSE, LITERAL_TRUE, ASSIGN, \
5            BAND_ASSIGN, BOR_ASSIGN, BSR_ASSIGN, BXOR_ASSIGN, DIV_ASSIGN, \
6            MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN, SL_ASSIGN, SR_ASSIGN, STAR_ASSIGN, \
7            LAMBDA, TEXT_BLOCK_LITERAL_BEGIN, LAND, LITERAL_INSTANCEOF, GT, LT, GE, \
8            LE, EQUAL, NOT_EQUAL, UNARY_MINUS, UNARY_PLUS, INC, DEC, LNOT, BNOT, \
9            POST_INC, POST_DEC
10  
11  
12  */
13  
14  package com.puppycrawl.tools.checkstyle.checks.coding.unnecessaryparentheses;
15  
16  public class InputUnnecessaryParenthesesIfStatement2 {
17  
18      void testShortCircuitOrIfStatement() {
19          boolean a = false;
20          boolean x = false, y = true, z = false;
21          boolean v = true, w = true, u = true;
22          boolean vy = x && y || (x || y || z) && v;
23          if (a && !(v && w || (x || y) && z || u && x)) {
24          }
25          if (a && !(v && w || x || y && z || u && x)) {
26          }
27          if (v ||
28                  (u || x || y)) { // violation 'Unnecessary parentheses around expression'
29          }
30          if ((v || x) ==
31                  (w || y)) {
32          }
33          if ((v || x) &
34                  (w || y)) {
35          }
36          if (a && v || (w || z) && u || y) {
37          }
38          if (a && x ||
39                  (y || z) // violation 'Unnecessary parentheses around expression'
40                  || vy && u) {
41          }
42      }
43  
44      public void checkBooleanStatements() {
45          boolean a = true;
46          int b = 42;
47          int c = 42;
48          int d = 32;
49          if ((b == c) == a
50                  && (
51                          ( // violation 'Unnecessary parentheses around expression'
52                              (b==c)==(d>=b)==a!=(c==d))
53                      || (b<=c)!=a==(c>=d))) {
54              return;
55          }
56  
57          if (( // violation 'Unnecessary parentheses around expression'
58                  a!=(b==c)
59                          && (a // violation 'Unnecessary parentheses around expression'
60                          && (b==c))) // violation 'Unnecessary parentheses around expression'
61                  || (a // violation 'Unnecessary parentheses around expression'
62                  || a!=(b<=c))
63                  || (a==(b!=d==(c==b) && a!=(b<=c)))) { // violation 'parentheses around expression'
64                                                         // after '||'
65              return;
66          }
67  
68          if (a==(b>=c && a==(c==d && d!=b))
69                  && a==(c<=d)) {
70              return;
71          }
72  
73          if (a && a==(b<=c)==(a
74                  && (b<=c))) { // violation 'Unnecessary parentheses around expression'
75              return;
76          }
77  
78          if (a==(b==c)
79                  || a!=(b<=c)) {
80              return;
81          }
82  
83          if ((b==0) == (c==d)
84                  && (Integer.valueOf(d) instanceof Integer) == true) {
85              return;
86          }
87      }
88  }