blob: a8081db1e09c9723667ddb4f21d3f07a5f88ce0b [file] [log] [blame]
Manuel Klimek8f9e4442015-10-22 14:54:50 +00001// RUN: %check_clang_tidy %s modernize-loop-convert %t -- \
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +00002// RUN: -config="{CheckOptions: [{key: modernize-loop-convert.NamingStyle, value: 'lower_case'}]}" \
3// RUN: -- -std=c++11 -I %S/Inputs/modernize-loop-convert
4
5#include "structures.h"
6
7const int n = 10;
8int arr[n];
9int nums[n];
Angel Garcia Gomez88d20442015-10-02 13:20:11 +000010int nums_[n];
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000011
12void naming() {
13 for (int i = 0; i < n; ++i) {
14 printf("%d\n", arr[i]);
15 }
16 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead [modernize-loop-convert]
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000017 // CHECK-FIXES: for (int & elem : arr)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000018 // CHECK-FIXES-NEXT: printf("%d\n", elem);
19
20 for (int i = 0; i < n; ++i) {
21 printf("%d\n", nums[i]);
22 }
23 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000024 // CHECK-FIXES: for (int & num : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000025 // CHECK-FIXES-NEXT: printf("%d\n", num);
26
Angel Garcia Gomez88d20442015-10-02 13:20:11 +000027 for (int i = 0; i < n; ++i) {
28 printf("%d\n", nums_[i]);
29 }
30 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000031 // CHECK-FIXES: for (int & num : nums_)
Angel Garcia Gomez88d20442015-10-02 13:20:11 +000032 // CHECK-FIXES-NEXT: printf("%d\n", num);
33
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000034 int num = 0;
35 for (int i = 0; i < n; ++i) {
36 printf("%d\n", nums[i] + num);
37 }
38 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000039 // CHECK-FIXES: for (int & elem : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000040 // CHECK-FIXES-NEXT: printf("%d\n", elem + num);
41
42 int elem = 0;
43 for (int i = 0; i < n; ++i) {
44 printf("%d\n", nums[i] + num + elem);
45 }
46 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000047 // CHECK-FIXES: for (int & nums_i : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000048 // CHECK-FIXES-NEXT: printf("%d\n", nums_i + num + elem);
49
50 int nums_i = 0;
51 for (int i = 0; i < n; ++i) {
52 printf("%d\n", nums[i] + num + elem + nums_i);
53 }
54 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000055 // CHECK-FIXES: for (int & nums_elem : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000056 // CHECK-FIXES-NEXT: printf("%d\n", nums_elem + num + elem + nums_i);
57
58 int nums_elem = 0;
59 for (int i = 0; i < n; ++i) {
60 printf("%d\n", nums[i] + num + elem + nums_i + nums_elem);
61 }
62 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000063 // CHECK-FIXES: for (int & give_me_name_0 : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000064 // CHECK-FIXES-NEXT: printf("%d\n", give_me_name_0 + num + elem + nums_i + nums_elem);
65
66 int give_me_name_0 = 0;
67 for (int i = 0; i < n; ++i) {
68 printf("%d\n", nums[i] + num + elem + nums_i + nums_elem + give_me_name_0);
69 }
70 // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000071 // CHECK-FIXES: for (int & give_me_name_1 : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000072 // CHECK-FIXES-NEXT: printf("%d\n", give_me_name_1 + num + elem + nums_i + nums_elem + give_me_name_0);
73
74 int nums_j = 0;
75 for (int i = 0; i < n; ++i) {
76 for (int j = 0; j < n; ++j) {
77 printf("%d\n", nums[i] + nums[j] + num + elem + nums_i + nums_j + nums_elem);
78 }
79 }
80 // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead
81 // CHECK-MESSAGES: :[[@LINE-5]]:5: warning: use range-based for loop instead
Angel Garcia Gomezd8336f32015-10-22 13:23:46 +000082 // CHECK-FIXES: for (int & give_me_name_0 : nums)
83 // CHECK-FIXES: for (int & give_me_name_1 : nums)
Angel Garcia Gomez8535c6c2015-09-24 17:02:19 +000084 // CHECK-FIXES-NEXT: printf("%d\n", give_me_name_0 + give_me_name_1 + num + elem + nums_i + nums_j + nums_elem);
85}