// Shouldn't transform pseudo-array uses if the container doesn't provide // begin() and end() of the right const-ness. void NoBeginEndTest() { NoBeginEnd NBE; for (unsigned i = 0, e = NBE.size(); i < e; ++i) {} // CHECK: for (unsigned i = 0, e = NBE.size(); i < e; ++i) {} const NoConstBeginEnd const_NCBE; for (unsigned i = 0, e = const_NCBE.size(); i < e; ++i) {} // CHECK: for (unsigned i = 0, e = const_NCBE.size(); i < e; ++i) {} ConstBeginEnd CBE; for (unsigned i = 0, e = CBE.size(); i < e; ++i) {} // CHECK: for (auto & elem : CBE) {} const ConstBeginEnd const_CBE; for (unsigned i = 0, e = const_CBE.size(); i < e; ++i) {} // CHECK: for (auto & elem : const_CBE) {} }
// Shouldn't transform pseudo-array uses if the container doesn't provide // begin() and end() of the right const-ness. void NoBeginEndTest() { NoBeginEnd NBE; for (unsigned i = 0, e = NBE.size(); i < e; ++i) { } const NoConstBeginEnd const_NCBE; for (unsigned i = 0, e = const_NCBE.size(); i < e; ++i) { } ConstBeginEnd CBE; for (unsigned i = 0, e = CBE.size(); i < e; ++i) { } // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (const auto & elem : CBE) { const ConstBeginEnd const_CBE; for (unsigned i = 0, e = const_CBE.size(); i < e; ++i) { } // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (const auto & elem : const_CBE) { }
// Shouldn't transform pseudo-array uses if the container doesn't provide // begin() and end() of the right const-ness. void NoBeginEndTest() { NoBeginEnd NBE; for (unsigned I = 0, E = NBE.size(); I < E; ++I) printf("%d\n", NBE[I]); const NoConstBeginEnd Const_NCBE; for (unsigned I = 0, E = Const_NCBE.size(); I < E; ++I) printf("%d\n", Const_NCBE[I]); ConstBeginEnd CBE; for (unsigned I = 0, E = CBE.size(); I < E; ++I) printf("%d\n", CBE[I]); // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (unsigned int Elem : CBE) // CHECK-FIXES-NEXT: printf("%d\n", Elem); const ConstBeginEnd Const_CBE; for (unsigned I = 0, E = Const_CBE.size(); I < E; ++I) printf("%d\n", Const_CBE[I]); // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (unsigned int Elem : Const_CBE) // CHECK-FIXES-NEXT: printf("%d\n", Elem); }
// Shouldn't transform pseudo-array uses if the container doesn't provide // begin() and end() of the right const-ness. void NoBeginEndTest() { NoBeginEnd NBE; for (unsigned i = 0, e = NBE.size(); i < e; ++i) printf("%d\n", NBE[i]); const NoConstBeginEnd const_NCBE; for (unsigned i = 0, e = const_NCBE.size(); i < e; ++i) printf("%d\n", const_NCBE[i]); ConstBeginEnd CBE; for (unsigned i = 0, e = CBE.size(); i < e; ++i) printf("%d\n", CBE[i]); // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (auto & elem : CBE) // CHECK-FIXES-NEXT: printf("%d\n", elem); const ConstBeginEnd const_CBE; for (unsigned i = 0, e = const_CBE.size(); i < e; ++i) printf("%d\n", const_CBE[i]); // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead // CHECK-FIXES: for (const auto & elem : const_CBE) // CHECK-FIXES-NEXT: printf("%d\n", elem); }