File indexing completed on 2024-04-28 05:38:40
0001 #include <QtCore/QList> 0002 #include <QtCore/QString> 0003 #include <QtCore/QMap> 0004 #include <QtCore/QVector> 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 struct A 0016 { 0017 A() 0018 { 0019 m_list.begin(); // Warning 0020 m_list.cbegin(); // OK 0021 } 0022 0023 void f() 0024 { 0025 QList<int> list; 0026 list.begin(); // OK 0027 list[0]; // OK 0028 0029 m_list.begin(); // Warning 0030 m_list.cbegin(); // OK 0031 m_constList.begin(); // OK 0032 } 0033 0034 void constF() const 0035 { 0036 m_list.begin(); // OK 0037 m_string.data(); // OK 0038 m_string[0]; // OK 0039 m_list[0]; // OK 0040 m_mutableString.begin(); // Warning 0041 m_mutableString[0]; // Warning 0042 } 0043 0044 void testAssignment() 0045 { 0046 m_string[0] = QChar('a'); // OK 0047 m_mutableString[0] = QChar('a'); // OK 0048 m_list[0]++; // OK 0049 m_list[0] += 2; // OK 0050 m_list2[0] = m_list[0]; // Warning 0051 } 0052 0053 0054 QList<int> m_list; 0055 QList<int> m_list2; 0056 QString m_string; 0057 mutable QString m_mutableString; 0058 const QList<int> m_constList; 0059 }; 0060 0061 class Static 0062 { 0063 public: 0064 static Static *instance() 0065 { 0066 return new Static(); 0067 } 0068 0069 QMap<int,int> getMap() const { return {}; } 0070 QMap<QString,QString> map; 0071 }; 0072 0073 void test(const QString &prefix, const QString &path) 0074 { 0075 Static::instance()->getMap()[0] = 0; 0076 Static::instance()->getMap()[0] += 0; 0077 Static::instance()->map[prefix] = path; 0078 Static::instance()->map[prefix] += path; 0079 } 0080 0081 // Bug 356699 0082 struct T { 0083 void nonConstMethod() {} 0084 void constMethod() const { } 0085 }; 0086 0087 struct S 0088 { 0089 QList<T> m_listOfValues; 0090 QList<T*> m_listOfPointers; 0091 }; 0092 0093 void test356699() 0094 { 0095 S s; 0096 s.m_listOfPointers[0]->nonConstMethod(); // Warning 0097 s.m_listOfValues[0].nonConstMethod(); // OK 0098 s.m_listOfValues.at(0).constMethod(); // OK 0099 s.m_listOfPointers.at(0)->nonConstMethod(); // OK 0100 } 0101 0102 void test356755() 0103 { 0104 S s; 0105 #if QT_VERSION_MAJOR == 5 0106 qSort(s.m_listOfPointers.begin(), s.m_listOfPointers.end()); 0107 #else 0108 std::sort(s.m_listOfPointers.begin(), s.m_listOfPointers.end()); 0109 #endif 0110 } 0111 0112 void testFill() { 0113 struct Fill { 0114 Fill() { 0115 m_vector.fill(1); 0116 } 0117 QVector<int> m_vector; 0118 }; 0119 0120 }