Warning, /sdk/clazy/tests/qt6-qlatin1stringchar-to-u/main.cpp.fixed.expected is written in an unsupported language. File is not indexed.
0001 #include <QtCore/QLatin1Char> 0002 #include <QtCore/QChar> 0003 #include <QtCore/QString> 0004 #include <QtCore/QDir> 0005 //static const type var{QLatin1String(value)}; 0006 #define MY_CONSTANT(type, name, value) \ 0007 static const type &name() { \ 0008 static const type var{QLatin1String(QLatin1String(value))}; \ 0009 return var; \ 0010 } 0011 #define MY_STRING_CONSTANT(name, value) MY_CONSTANT(QString, name, value) 0012 0013 MY_STRING_CONSTANT(fooProperty, "foo") 0014 MY_STRING_CONSTANT(barProperty, "bar") // Don't warn 0015 MY_STRING_CONSTANT(bobProperty, QLatin1String(QLatin1String("bob"))) 0016 0017 #define MY_CONSTANT_TEST(type, name, value) \ 0018 static const type &name() { \ 0019 static const type var{QString(value)}; \ 0020 return var; \ 0021 } 0022 #define MY_STRING_CONSTANT_TEST(name, value) MY_CONSTANT_TEST(QString, name, value) 0023 MY_STRING_CONSTANT_TEST(bobProperty_test, QLatin1String("bob_test")) 0024 MY_STRING_CONSTANT_TEST(bobProperty_test1, QLatin1String(QLatin1String("bob_test1"))) 0025 MY_STRING_CONSTANT_TEST(bobProperty_test2, QLatin1Char(false ? (true ? '*' : '/') : '/')) 0026 #define MY_OTHER_CONSTANT(QString, name, value) \ 0027 static const QString &name() { \ 0028 static const QString var{QLatin1String(QLatin1String(value))}; \ 0029 return var; \ 0030 } 0031 0032 MY_OTHER_CONSTANT(QString, other_test, QLatin1String("otherbob")) 0033 0034 void receivingQChar(QChar s1) {} 0035 void receivingQLatin1Char(QLatin1Char s1) {} 0036 0037 void receivingQString(QString s1) {} 0038 void receivingQLatin1String(QLatin1String s1) {} 0039 0040 bool return_bool(QString si) {return true;} 0041 0042 #define PREFIXX '*' 0043 #define PREFIX "foo" 0044 void test() 0045 { 0046 QChar c1 = u'*'; 0047 QChar c11 = u'*'; // remove the check 0048 0049 QString s = "aaa"; 0050 bool b = s.startsWith(u'/'); 0051 0052 s += u'.'; 0053 0054 QString appPrefix = s + u'\\'; 0055 appPrefix = s + u'\''; 0056 0057 if (s.at(1) == u'*') 0058 b = true; 0059 0060 QChar quotes[] = { u'"', u'"' }; 0061 QChar c2 = true ? u'*' : u'/'; 0062 0063 bool myBool = true; 0064 QChar c3 = myBool ? (true ? u'*' : u'/') : u'/'; 0065 0066 int i = s.lastIndexOf(u'*'); 0067 0068 const QString sc = "sc"; 0069 QString s2 = QDir::cleanPath(sc + u'*'); 0070 0071 s2.insert(1, u'*'); 0072 0073 0074 receivingQChar(u'/'); 0075 0076 receivingQLatin1Char(QLatin1Char('/')); 0077 0078 QLatin1Char toto = QLatin1Char('/'); 0079 0080 QChar char_with_macro = QLatin1Char(PREFIXX); // should not be fixed 0081 0082 QChar ccc = u'/'; 0083 c1 = true ? (true ? u'*' : u'/') : u'*'; 0084 // nested QLatin1String should not be picked explicitly 0085 0086 c1 = QLatin1Char(s.startsWith(u"sd"_qs) ? '/' : '*');// fix not supported (bool under CXXMemberCallExpr) 0087 0088 // The outer QLatin1Char fix is not supported, but the inside ones are. 0089 c1 = QLatin1Char(s.startsWith(u'_') ? '*' : '/'); 0090 c1 = QLatin1Char(s.startsWith(u"aa"_qs) ? 0091 (true ? u'_' : u'_') : u'_'); 0092 c1 = QLatin1Char(s.startsWith(u'/') ? 0093 u'_' : QLatin1Char(s.startsWith(u'_') ? u'*' : u'/')); 0094 // Support fixit for the QLatin1Char("_") calls in the above cases 0095 0096 QString s1 = u"str"_qs; 0097 s2 = QString(u"s2"_qs); 0098 s1 += u"str"_qs; 0099 s1 = true ? u"foo"_qs : u"bar"_qs; 0100 s1.append(u"appending"_qs); 0101 0102 s1 = myBool ? (true ? u"foo"_qs : u"bar"_qs) : u"bar"_qs; 0103 0104 receivingQString( u"str"_qs); 0105 receivingQLatin1String( QLatin1String("latin")); 0106 0107 QLatin1String totoo = QLatin1String("toto"); 0108 0109 QString sss = u"str"_qs; 0110 s1 = true ? (true ? u"foo"_qs : u"bar"_qs) : u"bar"_qs; 0111 // nested QLatin1String should not be picked explicitly 0112 0113 const char* myChar = "foo"; 0114 QString ww = QLatin1String(myChar); // fix not supported 0115 s1 = QLatin1String(myBool ? (true ? "foo" : myChar) : "bar"); // fix not supported (because of myChar) 0116 QString string_with_macro = QLatin1String(PREFIX "bar"); // fix not supported (macro present) 0117 s1 = QLatin1String(s.startsWith(u'/') ? "foo" : "bar");// fix not supported (bool under CXXMemberCallExpr) 0118 0119 // The outer QLatin1String fix is not supported, but the inside ones are. 0120 s1 = QLatin1String(s.startsWith(u"fixme"_qs) ? "foo" : "bar");// 0121 s1 = QLatin1String(s.startsWith(u'/') ? 0122 QLatin1String(true ? QLatin1String("dontfixme") : QLatin1String("dontfixme")) : QLatin1String("dontfixme")); 0123 s1 = QLatin1String(s.startsWith(u'/') ? 0124 QLatin1String("foo") : QLatin1String(s.startsWith(u"fixme"_qs) ? "foo" : "bar")); 0125 0126 QString s2df = "dfg"; 0127 s1 = QLatin1String(s.startsWith(u'/') ? QLatin1String("dontfix1") : QLatin1String("dontfix2")); 0128 s1 = QLatin1String(return_bool(u"fixme"_qs)? QLatin1String("dontfix1") : QLatin1String("dontfix2")); 0129 s1 = QLatin1String(s2df.contains(u"caught"_qs)? QLatin1String("dontfix1") : QLatin1String("dontfix2")); 0130 0131 } 0132