Skip to content

Commit 29fd173

Browse files
vilchik-elenapynicolas
authored andcommitted
SONARJS-119 Add Rule: Loop counters should not be assigned to from within the loop body
1 parent 0c0e182 commit 29fd173

File tree

8 files changed

+709
-1
lines changed

8 files changed

+709
-1
lines changed
Lines changed: 293 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,293 @@
1+
{
2+
'project:angular-1.0.3.js':[
3+
8019,
4+
8084,
5+
],
6+
'project:dojo-1.8.1/dijit/_editor/RichText.js.uncompressed.js':[
7+
576,
8+
],
9+
'project:dojo-1.8.1/dijit/dijit-all.js.uncompressed.js':[
10+
12183,
11+
24332,
12+
],
13+
'project:dojo-1.8.1/dijit/dijit.js.uncompressed.js':[
14+
3585,
15+
3595,
16+
],
17+
'project:dojo-1.8.1/dojo/_base/url.js.uncompressed.js':[
18+
50,
19+
60,
20+
],
21+
'project:dojo-1.8.1/dojo/data/ObjectStore.js.uncompressed.js':[
22+
452,
23+
],
24+
'project:dojo-1.8.1/dojo/data/util/filter.js.uncompressed.js':[
25+
43,
26+
],
27+
'project:dojo-1.8.1/dojo/dojo.js.uncompressed.js':[
28+
14875,
29+
14878,
30+
14884,
31+
],
32+
'project:dojo-1.8.1/dojo/request/watch.js.uncompressed.js':[
33+
26,
34+
29,
35+
35,
36+
],
37+
'project:dojo-1.8.1/dojox/atom/io/model.js.uncompressed.js':[
38+
405,
39+
441,
40+
499,
41+
],
42+
'project:dojo-1.8.1/dojox/calc/Grapher.js.uncompressed.js':[
43+
145,
44+
479,
45+
511,
46+
],
47+
'project:dojo-1.8.1/dojox/charting/plot2d/Default.js.uncompressed.js':[
48+
287,
49+
],
50+
'project:dojo-1.8.1/dojox/charting/widget/Chart2D.js.uncompressed.js':[
51+
12436,
52+
],
53+
'project:dojo-1.8.1/dojox/data/ClientFilter.js.uncompressed.js':[
54+
86,
55+
],
56+
'project:dojo-1.8.1/dojox/data/CsvStore.js.uncompressed.js':[
57+
528,
58+
],
59+
'project:dojo-1.8.1/dojox/data/XmlStore.js.uncompressed.js':[
60+
649,
61+
946,
62+
],
63+
'project:dojo-1.8.1/dojox/dtl/dom.js.uncompressed.js':[
64+
244,
65+
246,
66+
],
67+
'project:dojo-1.8.1/dojox/editor/plugins/FindReplace.js.uncompressed.js':[
68+
789,
69+
],
70+
'project:dojo-1.8.1/dojox/editor/plugins/NormalizeStyle.js.uncompressed.js':[
71+
409,
72+
],
73+
'project:dojo-1.8.1/dojox/encoding/ascii85.js.uncompressed.js':[
74+
60,
75+
],
76+
'project:dojo-1.8.1/dojox/gantt/GanttChart.js.uncompressed.js':[
77+
776,
78+
792,
79+
806,
80+
846,
81+
861,
82+
875,
83+
],
84+
'project:dojo-1.8.1/dojox/gauges/BarIndicator.js.uncompressed.js':[
85+
40,
86+
],
87+
'project:dojo-1.8.1/dojox/gfx/VectorText.js.uncompressed.js':[
88+
388,
89+
478,
90+
],
91+
'project:dojo-1.8.1/dojox/gfx/arc.js.uncompressed.js':[
92+
122,
93+
],
94+
'project:dojo-1.8.1/dojox/grid/DataGrid.js.uncompressed.js':[
95+
7162,
96+
7162,
97+
8810,
98+
],
99+
'project:dojo-1.8.1/dojox/grid/_Builder.js.uncompressed.js':[
100+
707,
101+
],
102+
'project:dojo-1.8.1/dojox/grid/_ViewManager.js.uncompressed.js':[
103+
163,
104+
163,
105+
],
106+
'project:dojo-1.8.1/dojox/grid/enhanced/plugins/DnD.js.uncompressed.js':[
107+
692,
108+
],
109+
'project:dojo-1.8.1/dojox/grid/enhanced/plugins/NestedSorting.js.uncompressed.js':[
110+
96,
111+
113,
112+
],
113+
'project:dojo-1.8.1/dojox/grid/enhanced/plugins/Rearrange.js.uncompressed.js':[
114+
207,
115+
210,
116+
257,
117+
260,
118+
300,
119+
303,
120+
336,
121+
],
122+
'project:dojo-1.8.1/dojox/grid/enhanced/plugins/Selector.js.uncompressed.js':[
123+
693,
124+
694,
125+
],
126+
'project:dojo-1.8.1/dojox/grid/enhanced/plugins/_RowMapLayer.js.uncompressed.js':[
127+
64,
128+
101,
129+
107,
130+
130,
131+
],
132+
'project:dojo-1.8.1/dojox/grid/enhanced/plugins/filter/FilterLayer.js.uncompressed.js':[
133+
392,
134+
],
135+
'project:dojo-1.8.1/dojox/mobile/dh/JsonContentHandler.js.uncompressed.js':[
136+
202,
137+
],
138+
'project:dojo-1.8.1/dojox/mobile/scrollable.js.uncompressed.js':[
139+
259,
140+
],
141+
'project:dojo-1.8.1/dojox/rpc/JsonRest.js.uncompressed.js':[
142+
103,
143+
],
144+
'project:dojo-1.8.1/dojox/rpc/OfflineRest.js.uncompressed.js':[
145+
137,
146+
],
147+
'project:dojo-1.8.1/dojox/secure/capability.js.uncompressed.js':[
148+
73,
149+
],
150+
'project:dojo-1.8.1/dojox/storage/CookieStorageProvider.js.uncompressed.js':[
151+
79,
152+
],
153+
'project:dojo-1.8.1/dojox/string/BidiEngine.js.uncompressed.js':[
154+
431,
155+
],
156+
'project:ecmascript6/di.js/chrome-extension/visualize/lib/angular.js':[
157+
6555,
158+
12108,
159+
12175,
160+
],
161+
'project:ecmascript6/di.js/chrome-extension/visualize/lib/d3.v3.js':[
162+
1406,
163+
5194,
164+
6556,
165+
],
166+
'project:ecmascript6/di.js/example/angular-loader/loader.js':[
167+
11,
168+
17,
169+
],
170+
'project:ecmascript6/di.js/example/angular-loader/traceur.js':[
171+
9013,
172+
9015,
173+
11778,
174+
],
175+
'project:ecmascript6/di.js/visualize/lib/angular.js':[
176+
6555,
177+
12108,
178+
12175,
179+
],
180+
'project:ecmascript6/di.js/visualize/lib/d3.v3.js':[
181+
1406,
182+
5194,
183+
6556,
184+
],
185+
'project:ecmascript6/http/gulpfile.js':[
186+
62,
187+
],
188+
'project:ecmascript6/watchtower.js/gulpfile.js':[
189+
47,
190+
],
191+
'project:google-closure-library/dom/classes.js':[
192+
131,
193+
],
194+
'project:google-closure-library/editor/plugins/removeformatting.js':[
195+
732,
196+
733,
197+
],
198+
'project:google-closure-library/editor/table.js':[
199+
175,
200+
212,
201+
270,
202+
],
203+
'project:google-closure-library/i18n/datetimeparse.js':[
204+
174,
205+
182,
206+
199,
207+
204,
208+
336,
209+
],
210+
'project:jquery-1.7.2.js':[
211+
1134,
212+
3061,
213+
4122,
214+
5438,
215+
7943,
216+
8526,
217+
8958,
218+
],
219+
'project:knockout-2.1.0.debug.js':[
220+
1016,
221+
1488,
222+
1522,
223+
2504,
224+
],
225+
'project:ocanvas-2.2.2.js':[
226+
313,
227+
804,
228+
3511,
229+
],
230+
'project:open-layers-2.12/OpenLayers/Control/Split.js':[
231+
386,
232+
395,
233+
],
234+
'project:open-layers-2.12/OpenLayers/Format/WMSGetFeatureInfo.js':[
235+
206,
236+
],
237+
'project:open-layers-2.12/OpenLayers/Format/XML.js':[
238+
728,
239+
739,
240+
],
241+
'project:open-layers-2.12/OpenLayers/Geometry/LineString.js':[
242+
310,
243+
],
244+
'project:open-layers-2.12/OpenLayers/Geometry/MultiLineString.js':[
245+
193,
246+
],
247+
'project:paper-0.22.js':[
248+
2458,
249+
2463,
250+
],
251+
'project:processing-1.3.6.js':[
252+
1193,
253+
2222,
254+
7754,
255+
],
256+
'project:prototype-1.7.js':[
257+
2083,
258+
4111,
259+
],
260+
'project:qunit-1.8.0.js':[
261+
1035,
262+
1217,
263+
],
264+
'project:sizzle-1.8.2.js':[
265+
1003,
266+
1275,
267+
],
268+
'project:yui-3.7.3/base-core/base-core.js':[
269+
484,
270+
],
271+
'project:yui-3.7.3/dataschema-xml/dataschema-xml.js':[
272+
234,
273+
],
274+
'project:yui-3.7.3/datatable-sort/datatable-sort.js':[
275+
270,
276+
],
277+
'project:yui-3.7.3/get/get.js':[
278+
1205,
279+
1225,
280+
],
281+
'project:yui-3.7.3/simpleyui/simpleyui.js':[
282+
5040,
283+
5060,
284+
],
285+
'project:yui-3.7.3/yui-base/yui-base.js':[
286+
5040,
287+
5060,
288+
],
289+
'project:yui-3.7.3/yui/yui.js':[
290+
5040,
291+
5060,
292+
],
293+
}

its/ruling/src/test/profile.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,11 @@
574574
<key>S2870</key>
575575
<priority>INFO</priority> <!-- "delete" should not be used on arrays -->
576576
</rule>
577+
<rule>
578+
<repositoryKey>javascript</repositoryKey>
579+
<key>S2310</key>
580+
<priority>INFO</priority> <!-- Loop counters should not be assigned to from within the loop body -->
581+
</rule>
577582
<rule>
578583
<repositoryKey>javascript</repositoryKey>
579584
<key>S2898</key>

javascript-checks/src/main/java/org/sonar/javascript/checks/CheckList.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public static List<Class> getChecks() {
6666
ContinueStatementCheck.class,
6767
HtmlCommentsCheck.class,
6868
EmptyBlockCheck.class,
69+
CounterUpdatedInLoopCheck.class,
6970
ElseIfWithoutElseCheck.class,
7071
ExcessiveParameterListCheck.class,
7172
CollapsibleIfStatementsCheck.class,

0 commit comments

Comments
 (0)