Warning, /sdk/clazy/tests/range-loop-reference/main.cpp.fixed.expected is written in an unsupported language. File is not indexed.
0001 #include <QtCore/QList> 0002 #include <QtCore/QString> 0003 #include <QtCore/QJsonArray> 0004 #include <QtCore/QSequentialIterable> 0005 0006 struct Trivial 0007 { 0008 int a; 0009 }; 0010 0011 struct BigTrivial 0012 { 0013 int a, b, c, d, e; 0014 void constFoo() const {} 0015 void nonConstFoo() {} 0016 }; 0017 0018 struct SmallNonTrivial 0019 { 0020 int a; 0021 ~SmallNonTrivial() {} 0022 }; 0023 0024 extern void nop(); 0025 extern void nop2(BigTrivial &); // non-const-ref 0026 extern void nop3(const BigTrivial &); // const-ref 0027 extern void nop4(BigTrivial *); // pointer 0028 0029 void test_missing_ref() 0030 { 0031 const QList<Trivial> trivials; 0032 const QList<BigTrivial> bigTrivials; 0033 const QList<SmallNonTrivial> smallNonTrivials; 0034 0035 // Test #2: No warning 0036 for (Trivial t : trivials) { 0037 nop(); 0038 } 0039 0040 // Test #3: No warning 0041 for (BigTrivial t : bigTrivials) { 0042 nop(); 0043 } 0044 0045 // Test #4: Warning 0046 for (const SmallNonTrivial &t : smallNonTrivials) { 0047 nop(); 0048 } 0049 0050 // Test #5: No Warning 0051 for (const BigTrivial t : bigTrivials) { 0052 t.constFoo(); 0053 } 0054 0055 // Test #6: No warning 0056 for (BigTrivial t : bigTrivials) { 0057 t.nonConstFoo(); 0058 } 0059 0060 // Test #7: No warning 0061 for (BigTrivial t : bigTrivials) { 0062 t = BigTrivial(); 0063 } 0064 0065 // Test #8: No warning 0066 for (BigTrivial t : bigTrivials) { 0067 nop2(t); 0068 } 0069 0070 // Test #9: No Warning 0071 for (BigTrivial t : bigTrivials) { 0072 nop3(t); 0073 } 0074 0075 // Test #9: No warning 0076 for (BigTrivial t : bigTrivials) { 0077 nop4(&t); 0078 } 0079 0080 // Test #10: No warning (bug #362587) 0081 QSequentialIterable si = QVariant().value<QSequentialIterable>(); 0082 for (const auto &s : si) {} 0083 } 0084 0085 void test_add_ref_fixits() 0086 { 0087 QStringList strlist; 0088 for (const QString &s : strlist) {} // should add & 0089 for (const QString &s : strlist) {} // should add const-& 0090 0091 for (QString s : strlist) { // shouldn't warn 0092 s = s.toLower(); 0093 } 0094 0095 for (QString s : strlist) { // shouldn't warn 0096 s.clear(); 0097 } 0098 } 0099 0100 void test_json_array() 0101 { 0102 QJsonArray array; 0103 const QJsonArray const_array; 0104 for (const auto a : array) {} // OK 0105 for (const QJsonValue &a : const_array) {} // Warn 0106 for (const QJsonValue &a : const_array) {} // OK 0107 }