Changeset 239282 in webkit
- Timestamp:
- Dec 17, 2018 12:36:31 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r239278 r239282 1 2018-12-17 Daniel Bates <dabates@apple.com> 2 3 Support concatenating StringView with other string types 4 https://bugs.webkit.org/show_bug.cgi?id=177566 5 6 Reviewed by Darin Adler. 7 8 Add operator+ overloads to StringOperators.h to support concatenating a StringView with 9 other string types (e.g. String). This lets a person write more naturally looking code: 10 11 stringView + string 12 13 Instead of: 14 15 makeString(stringView, string) 16 17 * wtf/text/StringOperators.h: 18 (WTF::operator+): Added various operator+ overloads. 19 1 20 2018-12-17 Commit Queue <commit-queue@webkit.org> 2 21 -
trunk/Source/WTF/wtf/text/StringOperators.h
r237099 r239282 113 113 } 114 114 115 template<typename T, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>> 116 inline StringAppend<const char*, StringView> operator+(const char* string1, T string2) 117 { 118 return StringAppend<const char*, StringView>(string1, string2); 119 } 120 115 121 template<typename U, typename V> 116 122 inline StringAppend<const char*, StringAppend<U, V>> operator+(const char* string1, const StringAppend<U, V>& string2) … … 127 133 { 128 134 return StringAppend<const UChar*, AtomicString>(string1, string2); 135 } 136 137 template<typename T, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>> 138 inline StringAppend<const UChar*, StringView> operator+(const UChar* string1, T string2) 139 { 140 return StringAppend<const UChar*, StringView>(string1, string2); 129 141 } 130 142 … … 145 157 } 146 158 159 template<typename T, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>> 160 inline StringAppend<ASCIILiteral, StringView> operator+(const ASCIILiteral& string1, T string2) 161 { 162 return StringAppend<ASCIILiteral, StringView>(string1, string2); 163 } 164 147 165 template<typename U, typename V> 148 166 inline StringAppend<ASCIILiteral, StringAppend<U, V>> operator+(const ASCIILiteral& string1, const StringAppend<U, V>& string2) … … 157 175 } 158 176 177 template<typename T, typename U, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>> 178 StringAppend<StringView, U> operator+(T string1, U string2) 179 { 180 return StringAppend<StringView, U>(string1, string2); 181 } 182 159 183 template<typename U, typename V, typename W> 160 184 StringAppend<StringAppend<U, V>, W> operator+(const StringAppend<U, V>& string1, W string2) -
trunk/Tools/ChangeLog
r239278 r239282 1 2018-12-17 Daniel Bates <dabates@apple.com> 2 3 Support concatenating StringView with other string types 4 https://bugs.webkit.org/show_bug.cgi?id=177566 5 6 Reviewed by Darin Adler. 7 8 Add some tests to ensure we do not regress the number of allocations needed when performing 9 string concatenation with string views. 10 11 * TestWebKitAPI/Tests/WTF/StringOperators.cpp: 12 (TestWebKitAPI::TEST): 13 1 14 2018-12-17 Commit Queue <commit-queue@webkit.org> 2 15 -
trunk/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp
r233122 r239282 30 30 static int wtfStringCopyCount; 31 31 32 #include <wtf/text/StringView.h> 32 33 #include <wtf/text/WTFString.h> 33 34 … … 48 49 ASCIILiteral literal { "ASCIILiteral"_s }; 49 50 51 String stringViewBacking { "StringView" }; 52 StringView stringView { stringViewBacking }; 53 50 54 EXPECT_EQ(0, wtfStringCopyCount); 51 55 … … 54 58 EXPECT_N_WTF_STRING_COPIES(2, atomicString + string); 55 59 EXPECT_N_WTF_STRING_COPIES(2, atomicString + atomicString); 60 EXPECT_N_WTF_STRING_COPIES(1, stringView + string); 61 EXPECT_N_WTF_STRING_COPIES(1, string + stringView); 62 EXPECT_N_WTF_STRING_COPIES(1, stringView + atomicString); 63 EXPECT_N_WTF_STRING_COPIES(1, atomicString + stringView); 56 64 57 65 EXPECT_N_WTF_STRING_COPIES(1, "C string" + string); … … 59 67 EXPECT_N_WTF_STRING_COPIES(1, "C string" + atomicString); 60 68 EXPECT_N_WTF_STRING_COPIES(1, atomicString + "C string"); 69 EXPECT_N_WTF_STRING_COPIES(0, "C string" + stringView); 70 EXPECT_N_WTF_STRING_COPIES(0, stringView + "C string"); 61 71 62 72 EXPECT_N_WTF_STRING_COPIES(1, literal + string); … … 64 74 EXPECT_N_WTF_STRING_COPIES(1, literal + atomicString); 65 75 EXPECT_N_WTF_STRING_COPIES(1, atomicString + literal); 76 EXPECT_N_WTF_STRING_COPIES(0, literal + stringView); 77 EXPECT_N_WTF_STRING_COPIES(0, stringView + literal); 66 78 67 79 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + string); … … 93 105 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + atomicString)); 94 106 95 EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + "C string" + string); 96 EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + "C string" + string)); 97 EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + ("C string" + string)); 98 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + literal + string); 99 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + string)); 100 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + string)); 101 102 EXPECT_N_WTF_STRING_COPIES(2, literal + string + "C string" + atomicString); 103 EXPECT_N_WTF_STRING_COPIES(2, literal + (string + "C string" + atomicString)); 104 EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + ("C string" + atomicString)); 105 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + literal + atomicString); 106 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + literal + atomicString)); 107 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + (literal + atomicString)); 107 EXPECT_N_WTF_STRING_COPIES(0, literal + stringView + "C string" + stringView); 108 EXPECT_N_WTF_STRING_COPIES(0, literal + (stringView + "C string" + stringView)); 109 EXPECT_N_WTF_STRING_COPIES(0, (literal + stringView) + ("C string" + stringView)); 110 EXPECT_N_WTF_STRING_COPIES(0, "C string" + stringView + literal + stringView); 111 EXPECT_N_WTF_STRING_COPIES(0, "C string" + (stringView + literal + stringView)); 112 EXPECT_N_WTF_STRING_COPIES(0, ("C string" + stringView) + (literal + stringView)); 113 114 EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + "C string" + string + literal + stringView); 115 EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + "C string" + string + literal + stringView)); 116 EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + ("C string" + string) + (literal + stringView)); 117 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + literal + string + literal + stringView); 118 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + string + literal + stringView)); 119 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + string) + (literal + stringView)); 120 121 EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + "C string" + stringView + literal + string); 122 EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + "C string" + stringView + literal + string)); 123 EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + ("C string" + stringView) + (literal + string)); 124 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + literal + stringView + literal + string); 125 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + stringView + literal + string)); 126 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + stringView) + (literal + string)); 127 128 EXPECT_N_WTF_STRING_COPIES(2, literal + string + "C string" + atomicString + literal + stringView); 129 EXPECT_N_WTF_STRING_COPIES(2, literal + (string + "C string" + atomicString + literal + stringView)); 130 EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + ("C string" + atomicString) + (literal + stringView)); 131 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + literal + atomicString + literal + stringView); 132 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + literal + atomicString + literal + stringView)); 133 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + (literal + atomicString) + (literal + stringView)); 134 135 EXPECT_N_WTF_STRING_COPIES(2, literal + string + "C string" + stringView + literal + atomicString); 136 EXPECT_N_WTF_STRING_COPIES(2, literal + (string + "C string" + stringView + literal + atomicString)); 137 EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + ("C string" + stringView) + (literal + atomicString)); 138 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + literal + stringView + literal + atomicString); 139 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + literal + stringView + literal + atomicString)); 140 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + (literal + stringView) + (literal + atomicString)); 141 142 EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + "C string" + atomicString + literal + string); 143 EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + "C string" + atomicString + literal + string)); 144 EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + ("C string" + atomicString) + (literal + string)); 145 EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + literal + atomicString + literal + string); 146 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + literal + atomicString + literal + string)); 147 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + (literal + atomicString) + (literal + string)); 148 149 EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + "C string" + string + literal + atomicString); 150 EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + "C string" + string + literal + atomicString)); 151 EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + ("C string" + string) + (literal + atomicString)); 152 EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + literal + string + literal + atomicString); 153 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + literal + string + literal + atomicString)); 154 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + (literal + string) + (literal + atomicString)); 108 155 109 156 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + atomicString); … … 121 168 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (atomicString + literal)); 122 169 123 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + atomicString); 124 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + atomicString)); 125 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + ("C string" + atomicString)); 126 EXPECT_N_WTF_STRING_COPIES(2, string + "C string" + atomicString + "C string"); 127 EXPECT_N_WTF_STRING_COPIES(2, string + ("C string" + atomicString + "C string")); 128 EXPECT_N_WTF_STRING_COPIES(2, (string + "C string") + (atomicString + "C string")); 129 130 EXPECT_N_WTF_STRING_COPIES(2, literal + string + literal + atomicString); 131 EXPECT_N_WTF_STRING_COPIES(2, literal + (string + literal + atomicString)); 132 EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + (literal + atomicString)); 133 EXPECT_N_WTF_STRING_COPIES(2, string + literal + atomicString + literal); 134 EXPECT_N_WTF_STRING_COPIES(2, string + (literal + atomicString + literal)); 135 EXPECT_N_WTF_STRING_COPIES(2, (string + literal) + (atomicString + literal)); 136 137 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + string); 138 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + string)); 139 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + string)); 140 EXPECT_N_WTF_STRING_COPIES(2, atomicString + "C string" + string + "C string"); 141 EXPECT_N_WTF_STRING_COPIES(2, atomicString + ("C string" + string + "C string")); 142 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + "C string") + (string + "C string")); 143 144 EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + literal + string); 145 EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + literal + string)); 146 EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + (literal + string)); 147 EXPECT_N_WTF_STRING_COPIES(2, atomicString + literal + string + literal); 148 EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + string + literal)); 149 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (string + literal)); 170 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + atomicString + "C string" + stringView); 171 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + atomicString + "C string" + stringView)); 172 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + ("C string" + atomicString) + ("C string" + stringView)); 173 EXPECT_N_WTF_STRING_COPIES(2, string + "C string" + atomicString + "C string" + stringView + "C string"); 174 EXPECT_N_WTF_STRING_COPIES(2, string + ("C string" + atomicString + "C string" + stringView + "C string")); 175 EXPECT_N_WTF_STRING_COPIES(2, (string + "C string") + (atomicString + "C string") + (stringView + "C string")); 176 177 EXPECT_N_WTF_STRING_COPIES(2, literal + string + literal + atomicString + literal + stringView); 178 EXPECT_N_WTF_STRING_COPIES(2, literal + (string + literal + atomicString + literal + stringView)); 179 EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + (literal + atomicString) + (literal + stringView)); 180 EXPECT_N_WTF_STRING_COPIES(2, string + literal + atomicString + literal + stringView + literal); 181 EXPECT_N_WTF_STRING_COPIES(2, string + (literal + atomicString + literal + stringView + literal)); 182 EXPECT_N_WTF_STRING_COPIES(2, (string + literal) + (atomicString + literal) + (stringView + literal)); 183 184 EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + stringView + "C string" + atomicString); 185 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + stringView + "C string" + atomicString)); 186 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + ("C string" + stringView) + ("C string" + atomicString)); 187 EXPECT_N_WTF_STRING_COPIES(2, string + "C string" + stringView + "C string" + atomicString + "C string"); 188 EXPECT_N_WTF_STRING_COPIES(2, string + ("C string" + stringView + "C string" + atomicString + "C string")); 189 EXPECT_N_WTF_STRING_COPIES(2, (string + "C string") + (stringView + "C string") + (atomicString + "C string")); 190 191 EXPECT_N_WTF_STRING_COPIES(2, literal + string + literal + stringView + literal + atomicString); 192 EXPECT_N_WTF_STRING_COPIES(2, literal + (string + literal + stringView + literal + atomicString)); 193 EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + (literal + stringView) + (literal + atomicString)); 194 EXPECT_N_WTF_STRING_COPIES(2, string + literal + stringView + literal + atomicString + literal); 195 EXPECT_N_WTF_STRING_COPIES(2, string + (literal + stringView + literal + atomicString + literal)); 196 EXPECT_N_WTF_STRING_COPIES(2, (string + literal) + (stringView + literal) + (atomicString + literal)); 197 198 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + string + "C string" + stringView); 199 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + string + "C string" + stringView)); 200 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + string) + ("C string" + stringView)); 201 EXPECT_N_WTF_STRING_COPIES(2, atomicString + "C string" + string + "C string" + stringView + "C string"); 202 EXPECT_N_WTF_STRING_COPIES(2, atomicString + ("C string" + string + "C string" + stringView + "C string")); 203 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + "C string") + (string + "C string") + (stringView + "C string")); 204 205 EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + literal + string + literal + stringView); 206 EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + literal + string + literal + stringView)); 207 EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + (literal + string) + (literal + stringView)); 208 EXPECT_N_WTF_STRING_COPIES(2, atomicString + literal + string + literal + stringView + literal); 209 EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + string + literal + stringView + literal)); 210 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (string + literal) + (stringView + literal)); 211 212 EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + stringView + "C string" + string); 213 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + stringView + "C string" + string)); 214 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + stringView) + ("C string" + string)); 215 EXPECT_N_WTF_STRING_COPIES(2, atomicString + "C string" + stringView + "C string" + string + "C string"); 216 EXPECT_N_WTF_STRING_COPIES(2, atomicString + ("C string" + stringView + "C string" + string + "C string")); 217 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + "C string") + (stringView + "C string") + (string + "C string")); 218 219 EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + literal + stringView + literal + string); 220 EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + literal + stringView + literal + string)); 221 EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + (literal + stringView) + (literal + string)); 222 EXPECT_N_WTF_STRING_COPIES(2, atomicString + literal + stringView + literal + string + literal); 223 EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + stringView + literal + string + literal)); 224 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (stringView + literal) + (string + literal)); 225 226 EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + "C string" + atomicString + "C string" + string); 227 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + "C string" + atomicString + "C string" + string)); 228 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + ("C string" + atomicString) + ("C string" + string)); 229 EXPECT_N_WTF_STRING_COPIES(2, stringView + "C string" + atomicString + "C string" + string + "C string"); 230 EXPECT_N_WTF_STRING_COPIES(2, stringView + ("C string" + atomicString + "C string" + string + "C string")); 231 EXPECT_N_WTF_STRING_COPIES(2, (stringView + "C string") + (atomicString + "C string") + (string + "C string")); 232 233 EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + literal + atomicString + literal + string); 234 EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + literal + atomicString + literal + string)); 235 EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + (literal + atomicString) + (literal + string)); 236 EXPECT_N_WTF_STRING_COPIES(2, stringView + literal + atomicString + literal + string + literal); 237 EXPECT_N_WTF_STRING_COPIES(2, stringView + (literal + atomicString + literal + string + literal)); 238 EXPECT_N_WTF_STRING_COPIES(2, (stringView + literal) + (atomicString + literal) + (string + literal)); 239 240 EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + "C string" + string + "C string" + atomicString); 241 EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + "C string" + string + "C string" + atomicString)); 242 EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + ("C string" + string) + ("C string" + atomicString)); 243 EXPECT_N_WTF_STRING_COPIES(2, stringView + "C string" + string + "C string" + atomicString + "C string"); 244 EXPECT_N_WTF_STRING_COPIES(2, stringView + ("C string" + string + "C string" + atomicString + "C string")); 245 EXPECT_N_WTF_STRING_COPIES(2, (stringView + "C string") + (string + "C string") + (atomicString + "C string")); 246 247 EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + literal + string + literal + atomicString); 248 EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + literal + string + literal + atomicString)); 249 EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + (literal + string) + (literal + atomicString)); 250 EXPECT_N_WTF_STRING_COPIES(2, stringView + literal + string + literal + atomicString + literal); 251 EXPECT_N_WTF_STRING_COPIES(2, stringView + (literal + string + literal + atomicString + literal)); 252 EXPECT_N_WTF_STRING_COPIES(2, (stringView + literal) + (string + literal) + (atomicString + literal)); 150 253 151 254 #if COMPILER(MSVC) … … 154 257 EXPECT_N_WTF_STRING_COPIES(1, L"wide string" + atomicString); 155 258 EXPECT_N_WTF_STRING_COPIES(1, atomicString + L"wide string"); 259 EXPECT_N_WTF_STRING_COPIES(0, L"wide string" + stringView); 260 EXPECT_N_WTF_STRING_COPIES(0, stringView + L"wide string"); 156 261 157 262 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + string); … … 169 274 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (atomicString + L"wide string")); 170 275 171 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + atomicString); 172 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + atomicString)); 173 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + string) + (L"wide string" + atomicString)); 174 EXPECT_N_WTF_STRING_COPIES(2, string + L"wide string" + atomicString + L"wide string"); 175 EXPECT_N_WTF_STRING_COPIES(2, string + (L"wide string" + atomicString + L"wide string")); 176 EXPECT_N_WTF_STRING_COPIES(2, (string + L"wide string") + (atomicString + L"wide string")); 177 178 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + atomicString + L"wide string" + string); 179 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (atomicString + L"wide string" + string)); 180 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + atomicString) + (L"wide string" + string)); 181 EXPECT_N_WTF_STRING_COPIES(2, atomicString + L"wide string" + string + L"wide string"); 182 EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + string + L"wide string")); 183 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (string + L"wide string")); 276 EXPECT_N_WTF_STRING_COPIES(0, L"wide string" + stringView + L"wide string" + stringView); 277 EXPECT_N_WTF_STRING_COPIES(0, L"wide string" + (stringView + L"wide string" + stringView)); 278 EXPECT_N_WTF_STRING_COPIES(0, (L"wide string" + stringView) + (L"wide string" + stringView)); 279 EXPECT_N_WTF_STRING_COPIES(0, stringView + L"wide string" + stringView + L"wide string"); 280 EXPECT_N_WTF_STRING_COPIES(0, stringView + (L"wide string" + stringView + L"wide string")); 281 EXPECT_N_WTF_STRING_COPIES(0, (stringView + L"wide string") + (stringView + L"wide string")); 282 283 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + atomicString + L"wide string" + stringView); 284 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + atomicString + L"wide string" + stringView)); 285 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + string) + (L"wide string" + atomicString) + (L"wide string" + stringView)); 286 EXPECT_N_WTF_STRING_COPIES(2, string + L"wide string" + atomicString + L"wide string" + stringView + L"wide string"); 287 EXPECT_N_WTF_STRING_COPIES(2, string + (L"wide string" + atomicString + L"wide string" + stringView + L"wide string")); 288 EXPECT_N_WTF_STRING_COPIES(2, (string + L"wide string") + (atomicString + L"wide string") + (stringView + L"wide string")); 289 290 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + stringView + L"wide string" + atomicString); 291 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + stringView + L"wide string" + atomicString)); 292 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + string) + (L"wide string" + stringView) + (L"wide string" + atomicString)); 293 EXPECT_N_WTF_STRING_COPIES(2, string + L"wide string" + stringView + L"wide string" + atomicString + L"wide string"); 294 EXPECT_N_WTF_STRING_COPIES(2, string + (L"wide string" + stringView + L"wide string" + atomicString + L"wide string")); 295 EXPECT_N_WTF_STRING_COPIES(2, (string + L"wide string") + (stringView + L"wide string") + (atomicString + L"wide string")); 296 297 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + atomicString + L"wide string" + string + L"wide string" + stringView); 298 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (atomicString + L"wide string" + string + L"wide string" + stringView)); 299 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + atomicString) + (L"wide string" + string) + (L"wide string" + stringView)); 300 EXPECT_N_WTF_STRING_COPIES(2, atomicString + L"wide string" + string + L"wide string" + stringView + L"wide string"); 301 EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + string + L"wide string" + stringView + L"wide string")); 302 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (string + L"wide string") + (stringView + L"wide string")); 303 304 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + atomicString + L"wide string" + stringView + L"wide string" + string); 305 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (atomicString + L"wide string" + stringView + L"wide string" + string)); 306 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + atomicString) + (L"wide string" + stringView) + (L"wide string" + string)); 307 EXPECT_N_WTF_STRING_COPIES(2, atomicString + L"wide string" + stringView + L"wide string" + string + L"wide string"); 308 EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + stringView + L"wide string" + string + L"wide string")); 309 EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (stringView + L"wide string") + (string + L"wide string")); 310 311 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + stringView + L"wide string" + atomicString + L"wide string" + string); 312 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (stringView + L"wide string" + atomicString + L"wide string" + string)); 313 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + stringView) + (L"wide string" + atomicString) + (L"wide string" + string)); 314 EXPECT_N_WTF_STRING_COPIES(2, stringView + L"wide string" + atomicString + L"wide string" + string + L"wide string"); 315 EXPECT_N_WTF_STRING_COPIES(2, stringView + (L"wide string" + atomicString + L"wide string" + string + L"wide string")); 316 EXPECT_N_WTF_STRING_COPIES(2, (stringView + L"wide string") + (atomicString + L"wide string") + (string + L"wide string")); 317 318 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + stringView + L"wide string" + string + L"wide string" + atomicString); 319 EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (stringView + L"wide string" + string + L"wide string" + atomicString)); 320 EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + stringView) + (L"wide string" + string) + (L"wide string" + atomicString)); 321 EXPECT_N_WTF_STRING_COPIES(2, stringView + L"wide string" + string + L"wide string" + atomicString + L"wide string"); 322 EXPECT_N_WTF_STRING_COPIES(2, stringView + (L"wide string" + string + L"wide string" + atomicString + L"wide string")); 323 EXPECT_N_WTF_STRING_COPIES(2, (stringView + L"wide string") + (string + L"wide string") + (atomicString + L"wide string")); 184 324 #endif 185 325 }
Note: See TracChangeset
for help on using the changeset viewer.