File indexing completed on 2024-04-21 05:38:54

0001 #include <QtCore/QList>
0002 #include <QtCore/QVariant>
0003 #include <vector>
0004 #include <QtCore/QHash>
0005 Q_GLOBAL_STATIC(QList<int>, s_list);
0006 
0007 QList<int> getList()
0008 {
0009   QList<int> list;
0010   list << 1;
0011   return list;
0012 }
0013 
0014 QList<int>& getListRef()
0015 {
0016   static QList<int> list;
0017   return list;
0018 }
0019 
0020 void test()
0021 {
0022     for (auto it = getList().begin(); it != getList().end(); ++it) {} // Warning
0023     for (auto it = getListRef().begin(); it != getListRef().end(); ++it) {} // OK
0024 
0025     QList<int> localList;
0026     for (auto it = localList.begin(); it != localList.end(); ++it) {} // OK
0027     localList.cbegin(); // OK
0028     getListRef().cbegin(); // OK
0029     getList().cbegin(); // Warning
0030 
0031     s_list->cbegin(); // OK
0032     QVariant variant;
0033     variant.toList().cbegin(); // OK
0034 }
0035 
0036 void acceptsInt(int) {}
0037 
0038 void testDereference()
0039 {
0040     int value = *getList().cbegin(); // OK
0041     value = *(getList().cbegin()); // OK
0042     acceptsInt(*getList().cbegin()); //OK
0043     const QHash<int, QList<int> > listOfLists;
0044     int ns = 1;
0045     for (auto it = listOfLists[ns].constBegin(); it != listOfLists[ns].constEnd(); ++it) {} // OK
0046 
0047 }
0048 
0049 QHash<int,int> getHash()
0050 {
0051     return {};
0052 }
0053 
0054 void testMember()
0055 {
0056     getHash().cbegin(); // Warning
0057     getHash().cbegin().value(); // OK
0058 }