1{
2    "available_categories" : ["readability", "qt4", "containers", "qstring", "cpp", "bug", "performance", "deprecation", "qml"],
3    "checks" : [
4        {
5            "name"  : "qt-keywords",
6            "level" : -1,
7            "fixits" : [
8                {
9                    "name" : "qt-keywords"
10                }
11            ]
12        },
13        {
14            "name"  : "ifndef-define-typo",
15            "level" : -1,
16            "categories" : ["bug"]
17        },
18        {
19            "name"  : "inefficient-qlist",
20            "level" : -1,
21            "categories" : ["containers", "performance"],
22            "visits_decls" : true
23        },
24        {
25            "name"   : "isempty-vs-count",
26            "class_name" : "IsEmptyVSCount",
27            "level"  : -1,
28            "categories" : ["readability"],
29            "visits_stmts" : true
30        },
31        {
32            "name"   : "qrequiredresult-candidates",
33            "class_name" : "QRequiredResultCandidates",
34            "level"  : -1,
35            "categories" : ["bug"],
36            "visits_decls" : true
37        },
38        {
39            "name"   : "qstring-varargs",
40            "level"  : -1,
41            "categories" : ["bug"],
42            "visits_stmts" : true
43        },
44        {
45            "name"  : "qt4-qstring-from-array",
46            "class_name" : "Qt4QStringFromArray",
47            "level" : -1,
48            "categories" : ["qt4", "qstring"],
49            "fixits" : [
50                {
51                    "name" : "qt4-qstring-from-array"
52                }
53            ],
54            "visits_stmts" : true
55        },
56        {
57            "name"   : "tr-non-literal",
58            "level"  : -1,
59            "categories" : ["bug"],
60            "visits_stmts" : true
61        },
62        {
63            "name"   : "raw-environment-function",
64            "level"  : -1,
65            "categories" : ["bug"],
66            "visits_stmts" : true
67        },
68        {
69            "name"  : "container-inside-loop",
70            "level" : -1,
71            "categories" : ["containers", "performance"],
72            "visits_stmts" : true
73        },
74        {
75            "name" : "qhash-with-char-pointer-key",
76            "level" : -1,
77            "categories" : ["cpp", "bug"],
78            "visits_decls" : true
79        },
80        {
81            "name"  : "connect-by-name",
82            "level" : 0,
83            "categories" : ["bug", "readability"],
84            "visits_decls" : true
85        },
86        {
87            "name"  : "connect-non-signal",
88            "minimum_qt_version" : 50700,
89            "level" : 0,
90            "categories" : ["bug"],
91            "visits_stmts" : true
92        },
93        {
94            "name"  : "wrong-qevent-cast",
95            "level" : 0,
96            "categories" : ["bug"],
97            "visits_stmts" : true
98        },
99        {
100            "name"  : "lambda-in-connect",
101            "level" : 0,
102            "categories" : ["bug"],
103            "visits_stmts" : true
104        },
105        {
106            "name"  : "lambda-unique-connection",
107            "level" : 0,
108            "categories" : ["bug"],
109            "visits_stmts" : true
110        },
111        {
112            "name"  : "qdatetime-utc",
113            "class_name" : "QDateTimeUtc",
114            "level" : 0,
115            "categories" : ["performance"],
116            "fixits" : [
117                {
118                    "name" : "qdatetime-utc"
119                }
120            ],
121            "visits_stmts" : true
122        },
123        {
124            "name"  : "qgetenv",
125            "class_name" : "QGetEnv",
126            "level" : 0,
127            "minimum_qt_version" : 50500,
128            "categories" : ["performance"],
129            "fixits" : [
130                {
131                    "name" : "qgetenv"
132                }
133            ],
134            "visits_stmts" : true
135        },
136        {
137            "name"  : "qstring-insensitive-allocation",
138            "level" : 0,
139            "categories" : ["performance", "qstring"],
140            "visits_stmts" : true
141        },
142        {
143            "name"  : "fully-qualified-moc-types",
144            "class_name" : "FullyQualifiedMocTypes",
145            "level" : 0,
146            "categories" : ["bug", "qml"],
147            "visits_decls" : true
148        },
149        {
150            "name"  : "qvariant-template-instantiation",
151            "level" : 0,
152            "categories" : ["performance"],
153            "visits_stmts" : true
154        },
155        {
156            "name"  : "unused-non-trivial-variable",
157            "level" : 0,
158            "categories" : ["readability"],
159            "visits_stmts" : true
160        },
161        {
162            "name"  : "connect-not-normalized",
163            "level" : 0,
164            "categories" : ["performance"],
165            "visits_stmts" : true
166        },
167        {
168            "name"  : "mutable-container-key",
169            "level" : 0,
170            "categories" : ["containers", "bug"],
171            "visits_decls" : true
172        },
173        {
174            "name"  : "qenums",
175            "level" : 0,
176            "minimum_qt_version" : 50500,
177            "categories" : ["deprecation"]
178        },
179        {
180            "name"  : "qmap-with-pointer-key",
181            "level" : 0,
182            "categories" : ["containers", "performance"],
183            "visits_decls" : true
184        },
185        {
186            "name"  : "qstring-ref",
187            "class_name" : "StringRefCandidates",
188            "level" : 0,
189            "categories" : ["performance", "qstring"],
190            "fixits" : [
191                {
192                    "name" : "missing-qstringref"
193                }
194            ],
195            "visits_stmts" : true
196        },
197        {
198            "name"  : "strict-iterators",
199            "level" : 0,
200            "categories" : ["containers", "performance", "bug"],
201            "visits_stmts" : true
202        },
203        {
204            "name"  : "writing-to-temporary",
205            "level" : 0,
206            "categories" : ["bug"],
207            "options" : [
208                {
209                    "name" : "widen-criteria"
210                }
211            ],
212            "visits_stmts" : true
213        },
214        {
215            "name"  : "container-anti-pattern",
216            "level" : 0,
217            "categories" : ["containers", "performance"],
218            "visits_stmts" : true
219        },
220        {
221            "name"  : "qcolor-from-literal",
222            "level" : 0,
223            "categories" : ["performance"],
224            "visits_stmts" : true,
225            "ifndef" : "CLAZY_DISABLE_AST_MATCHERS"
226        },
227        {
228            "name"  : "qfileinfo-exists",
229            "class_name" : "QFileInfoExists",
230            "level" : 0,
231            "categories" : ["performance"],
232            "visits_stmts" : true
233        },
234        {
235            "name"  : "qstring-arg",
236            "level" : 0,
237            "categories" : ["performance", "qstring"],
238            "options" : [
239                {
240                    "name" : "fillChar-overloads"
241                }
242            ],
243            "visits_stmts" : true
244        },
245        {
246            "name"  : "empty-qstringliteral",
247            "level" : 0,
248            "categories" : ["performance"],
249            "visits_stmts" : true
250        },
251        {
252            "name"  : "qt-macros",
253            "class_name" : "QtMacros",
254            "level" : 0,
255            "categories" : ["bug"]
256        },
257        {
258            "name"  : "temporary-iterator",
259            "level" : 0,
260            "categories" : ["containers", "bug"],
261            "visits_stmts" : true
262        },
263        {
264            "name"  : "wrong-qglobalstatic",
265            "class_name" : "WrongQGlobalStatic",
266            "level" : 0,
267            "categories" : ["performance"],
268            "visits_stmts" : true
269        },
270        {
271            "name" : "lowercase-qml-type-name",
272            "level" : 0,
273            "categories" : ["qml", "bug"],
274            "visits_stmts" : true
275        },
276        {
277            "name"  : "auto-unexpected-qstringbuilder",
278            "class_name" : "AutoUnexpectedQStringBuilder",
279            "level" : 1,
280            "categories" : ["bug", "qstring"],
281            "visits_decls" : true,
282            "visits_stmts" : true,
283            "fixits" : [
284                {
285                    "name" : "auto-unexpected-qstringbuilder"
286                }
287            ]
288        },
289        {
290            "name"  : "connect-3arg-lambda",
291            "level" : 1,
292            "categories" : ["bug"],
293            "visits_stmts" : true
294        },
295        {
296            "name"  : "const-signal-or-slot",
297            "level" : 1,
298            "categories" : ["readability", "bug"],
299            "visits_decls" : true,
300            "visits_stmts" : true
301        },
302        {
303            "name"  : "detaching-temporary",
304            "level" : 1,
305            "categories" : ["containers", "performance"],
306            "visits_stmts" : true
307        },
308        {
309            "name"  : "foreach",
310            "level" : 1,
311            "categories" : ["containers", "performance"],
312            "visits_stmts" : true
313        },
314        {
315            "name"  : "incorrect-emit",
316            "level" : 1,
317            "categories" : ["readability"],
318            "visits_stmts" : true
319        },
320        {
321            "name"  : "inefficient-qlist-soft",
322            "level" : 1,
323            "categories" : ["containers", "performance"],
324            "visits_decls" : true
325        },
326        {
327            "name"  : "install-event-filter",
328            "level" : 1,
329            "categories" : ["bug"],
330            "visits_stmts" : true
331        },
332        {
333            "name"  : "non-pod-global-static",
334            "level" : 1,
335            "categories" : ["performance"],
336            "visits_stmts" : true
337        },
338        {
339            "name"  : "post-event",
340            "level" : 1,
341            "categories" : ["bug"],
342            "visits_stmts" : true
343        },
344        {
345            "name"  : "qdeleteall",
346            "class_name" : "QDeleteAll",
347            "level" : 1,
348            "categories" : ["containers", "performance"],
349            "visits_stmts" : true
350        },
351        {
352            "name"  : "qlatin1string-non-ascii",
353            "level" : 1,
354            "categories" : ["bug", "qstring"],
355            "visits_stmts" : true
356        },
357        {
358            "name"  : "qproperty-without-notify",
359            "level" : 1,
360            "categories" : ["bug"],
361            "visits_stmts" : true
362        },
363        {
364            "name"  : "qstring-left",
365            "level" : 1,
366            "categories" : ["bug", "performance", "qstring"],
367            "visits_stmts" : true
368        },
369        {
370            "name"  : "range-loop",
371            "level" : 1,
372            "categories" : ["containers", "performance"],
373            "visits_stmts" : true,
374            "fixits" : [
375                {
376                    "name" : "range-loop-add-ref"
377                },
378                {
379                    "name" : "range-loop-add-qasconst"
380                }
381            ]
382        },
383        {
384            "name"  : "returning-data-from-temporary",
385            "level" : 1,
386            "categories" : ["bug"],
387            "visits_stmts" : true
388        },
389        {
390            "name"  : "rule-of-two-soft",
391            "level" : 1,
392            "categories" : ["cpp", "bug"],
393            "visits_stmts" : true
394        },
395        {
396            "name"  : "child-event-qobject-cast",
397            "level" : 1,
398            "categories" : ["bug"],
399            "visits_decls" : true
400        },
401        {
402            "name"  : "virtual-signal",
403            "level" : 1,
404            "categories" : ["bug", "readability"],
405            "visits_decls" : true
406        },
407        {
408            "name"  : "overridden-signal",
409            "level" : 1,
410            "categories" : ["bug", "readability"],
411            "visits_decls" : true
412        },
413        {
414            "name"  : "qhash-namespace",
415            "level" : 1,
416            "categories" : ["bug"],
417            "visits_decls" : true
418        },
419        {
420            "name"  : "skipped-base-method",
421            "level" : 1,
422            "categories" : ["bug", "cpp"],
423            "visits_stmts" : true
424        },
425        {
426            "name"  : "unneeded-cast",
427            "level" : 3,
428            "categories" : ["cpp", "readability"],
429            "options" : [
430                {
431                    "name" : "prefer-dynamic-cast-over-qobject"
432                }
433            ],
434            "visits_stmts" : true
435        },
436        {
437            "name"  : "ctor-missing-parent-argument",
438            "level" : 2,
439            "categories" : ["bug"],
440            "visits_decls" : true
441        },
442        {
443            "name"  : "base-class-event",
444            "level" : 2,
445            "categories" : ["bug"],
446            "visits_decls" : true
447        },
448        {
449            "name"  : "copyable-polymorphic",
450            "level" : 2,
451            "categories" : ["cpp", "bug"],
452            "visits_decls" : true
453        },
454        {
455            "name"  : "function-args-by-ref",
456            "level" : 2,
457            "categories" : ["cpp", "performance"],
458            "options" : [
459                {
460                    "name" : "warn-for-overridden-methods"
461                }
462            ],
463            "fixits" : [
464                {
465                    "name" : "function-args-by-ref"
466                }
467            ],
468            "visits_decls" : true,
469            "visits_stmts" : true
470        },
471        {
472            "name"  : "function-args-by-value",
473            "level" : 2,
474            "categories" : ["cpp", "performance"],
475            "options" : [
476                {
477                    "name" : "warn-for-overridden-methods"
478                }
479            ],
480            "visits_decls" : true,
481            "visits_stmts" : true
482        },
483        {
484            "name"  : "global-const-char-pointer",
485            "level" : 2,
486            "categories" : ["cpp", "performance"],
487            "visits_decls" : true
488        },
489        {
490            "name"  : "implicit-casts",
491            "level" : 2,
492            "categories" : ["cpp", "bug"],
493            "options" : [
494                {
495                    "name" : "bool-to-int"
496                }
497            ],
498            "visits_stmts" : true
499        },
500        {
501            "name"  : "missing-qobject-macro",
502            "level" : 2,
503            "categories" : ["bug"],
504            "visits_decls" : true
505        },
506        {
507            "name"  : "missing-typeinfo",
508            "class_name" : "MissingTypeInfo",
509            "level" : 2,
510            "categories" : ["containers", "performance"],
511            "visits_decls" : true
512        },
513        {
514            "name"  : "old-style-connect",
515            "level" : 2,
516            "minimum_qt_version" : 50500,
517            "ifndef" : "NO_STD_REGEX",
518            "categories" : ["performance"],
519            "fixits" : [
520                {
521                    "name" : "old-style-connect"
522                }
523            ],
524            "visits_stmts" : true
525        },
526        {
527            "name"  : "qstring-allocations",
528            "level" : 2,
529            "minimum_qt_version" : 50000,
530            "categories" : ["performance", "qstring"],
531            "fixits" : [
532                {
533                    "name" : "qlatin1string-allocations"
534                },
535                {
536                    "name" : "fromLatin1_fromUtf8-allocations"
537                },
538                {
539                    "name" : "fromCharPtrAllocations"
540                }
541            ],
542            "options" : [
543                {
544                    "name" : "no-msvc-compat"
545                }
546            ],
547            "visits_stmts" : true
548        },
549        {
550            "name"  : "returning-void-expression",
551            "level" : 2,
552            "categories" : ["readability", "cpp"],
553            "visits_stmts" : true
554        },
555        {
556            "name"  : "rule-of-three",
557            "level" : 2,
558            "categories" : ["cpp", "bug"],
559            "visits_decls" : true
560        },
561        {
562            "name"  : "virtual-call-ctor",
563            "level" : 2,
564            "categories" : ["cpp", "bug"],
565            "visits_decls" : true
566        },
567        {
568            "name"  : "static-pmf",
569            "level" : 2,
570            "categories" : ["bug"],
571            "visits_decls" : true
572        },
573        {
574            "name"  : "assert-with-side-effects",
575            "level" : 3,
576            "categories" : ["bug"],
577            "visits_stmts" : true
578        },
579        {
580            "name"  : "detaching-member",
581            "level" : 3,
582            "categories" : ["containers", "performance"],
583            "visits_stmts" : true
584        },
585        {
586            "name"  : "thread-with-slots",
587            "level" : 3,
588            "categories" : ["bug"],
589            "visits_decls" : true,
590            "visits_stmts" : true
591        },
592        {
593            "name"  : "reserve-candidates",
594            "level" : 3,
595            "categories" : ["containers"],
596            "visits_stmts" : true
597        }
598    ]
599}
600