View Javadoc
1   /*
2   ModifiedControlVariable
3   skipEnhancedForLoopVariable = (default)false
4   
5   
6   */
7   
8   package com.puppycrawl.tools.checkstyle.checks.coding.modifiedcontrolvariable;
9   import java.io.Serializable;
10  class InputModifiedControlVariableBothForLoops
11  {
12      int k;
13      void method1()
14      {
15          //Violations:
16          for (int i = 0; i < 1; i++) {
17              i++; // violation
18          }
19          for (int i = 0; i < 1; i++) {
20              i = i + 1; // violation
21          }
22          for (int i = 0; i < 1; i++) {
23              for (int j = 0; j < 1; i++) { // violation
24                  --i; // violation
25              }
26          }
27          for (int i = 0, j = 0; i < 1; i++) {
28              j++;
29          }
30  
31          // Ok:
32          for (int i = 0; i < 1; i++) {
33          }
34          for (int i = 0; i < 1; i++) {
35              int x = i;
36          }
37          for (int i = 0; i < 1; i++) {
38              Serializable s = new Serializable() {
39                  int i = 3;
40                  void a() {
41                      System.identityHashCode(i++);
42                  }
43              };
44          }
45          for (int k = 0; k < 1; k++) {
46              this.k++;
47          }
48  
49          String[] sa = {"a", "b"};
50          for(String s:sa) {}
51          for(String s:sa) {
52              s = "new string"; // violation
53          }
54          for(int i=0;i < 10;) {
55              i++;
56          }
57          for (int i = 0, l = 0,m=0; l < 10; i++,m=m+2) {
58              l++;
59              m++; // violation
60          }
61          for (int i = 0; i < 10; ) {
62              i = 11;
63          }
64          int w=0;
65          for (int i=0;i<10; java.sql.Date.valueOf(""),this.i++,w++) {
66              i++;
67              w++;
68          }
69          for (int i=0,k=0; i<10 && k < 10; ++i,++k) {
70              i = i + 3; // violation
71              k = k + 4; // violation
72          }
73          for (int i = 0,j = 0 ; i <10; i++) {
74              j++;
75          }
76  
77          for (String v : sa) {
78              new NestedClass() {
79                  public void method() {}
80              };
81              v = "bad"; // violation
82          }
83          for (int i = 0; i < 10; i += 1) {
84              for (i = 7; i < 10; i += 1) {}
85          }
86          for (String name: new String[] {}) {
87          }
88  
89          for (i = 0; i < 10; i++) {
90              String name;
91              name = "";
92          }
93          for (int EXPR = 0; EXPR < 1; EXPR++) {
94              for (int j = 0; j < 1; i++) {
95                  i++;
96              }
97          }
98      }
99      private int i;
100 }
101 
102 @SuppressWarnings(value = "this previously caused NullPointerException")
103 class VariableDeclaredBeforeTheFirstBlockBegins {
104     void foo(String[] requests) {
105         for (String eventDataType : requests) {
106             @SuppressWarnings(value = "this previously caused NullPointerException")
107             String eventData;
108         }
109     }
110 }
111 abstract class NestedClass {
112     public abstract void method();
113 }