@@ -6185,7 +6185,17 @@ TEST_F(FormatTest, ReturnTypeBreakingStyle) {
6185
6185
"void\n"
6186
6186
"A::operator[]() {}\n"
6187
6187
"void\n"
6188
- "A::operator!() {}\n",
6188
+ "A::operator!() {}\n"
6189
+ "void\n"
6190
+ "A::operator**() {}\n"
6191
+ "void\n"
6192
+ "A::operator<Foo> *() {}\n"
6193
+ "void\n"
6194
+ "A::operator<Foo> **() {}\n"
6195
+ "void\n"
6196
+ "A::operator<Foo> &() {}\n"
6197
+ "void\n"
6198
+ "A::operator void **() {}\n",
6189
6199
Style);
6190
6200
verifyFormat("constexpr auto\n"
6191
6201
"operator()() const -> reference {}\n"
@@ -6202,6 +6212,10 @@ TEST_F(FormatTest, ReturnTypeBreakingStyle) {
6202
6212
"constexpr auto\n"
6203
6213
"operator void *() const -> reference {}\n"
6204
6214
"constexpr auto\n"
6215
+ "operator void **() const -> reference {}\n"
6216
+ "constexpr auto\n"
6217
+ "operator void *() const -> reference {}\n"
6218
+ "constexpr auto\n"
6205
6219
"operator void &() const -> reference {}\n"
6206
6220
"constexpr auto\n"
6207
6221
"operator void &&() const -> reference {}\n"
@@ -14986,9 +15000,20 @@ TEST_F(FormatTest, OperatorSpacing) {
14986
15000
Style.PointerAlignment = FormatStyle::PAS_Right;
14987
15001
verifyFormat("Foo::operator*();", Style);
14988
15002
verifyFormat("Foo::operator void *();", Style);
15003
+ verifyFormat("Foo::operator void **();", Style);
14989
15004
verifyFormat("Foo::operator()(void *);", Style);
14990
15005
verifyFormat("Foo::operator*(void *);", Style);
14991
15006
verifyFormat("Foo::operator*();", Style);
15007
+ verifyFormat("Foo::operator**();", Style);
15008
+ verifyFormat("Foo::operator&();", Style);
15009
+ verifyFormat("Foo::operator<int> *();", Style);
15010
+ verifyFormat("Foo::operator<Foo> *();", Style);
15011
+ verifyFormat("Foo::operator<int> **();", Style);
15012
+ verifyFormat("Foo::operator<Foo> **();", Style);
15013
+ verifyFormat("Foo::operator<int> &();", Style);
15014
+ verifyFormat("Foo::operator<Foo> &();", Style);
15015
+ verifyFormat("Foo::operator<int> &&();", Style);
15016
+ verifyFormat("Foo::operator<Foo> &&();", Style);
14992
15017
verifyFormat("operator*(int (*)(), class Foo);", Style);
14993
15018
14994
15019
verifyFormat("Foo::operator&();", Style);
@@ -14999,21 +15024,39 @@ TEST_F(FormatTest, OperatorSpacing) {
14999
15024
verifyFormat("operator&(int (&)(), class Foo);", Style);
15000
15025
15001
15026
verifyFormat("Foo::operator&&();", Style);
15027
+ verifyFormat("Foo::operator**();", Style);
15002
15028
verifyFormat("Foo::operator void &&();", Style);
15003
15029
verifyFormat("Foo::operator()(void &&);", Style);
15004
15030
verifyFormat("Foo::operator&&(void &&);", Style);
15005
15031
verifyFormat("Foo::operator&&();", Style);
15006
15032
verifyFormat("operator&&(int(&&)(), class Foo);", Style);
15033
+ verifyFormat("operator const nsTArrayRight<E> &()", Style);
15034
+ verifyFormat("[[nodiscard]] operator const nsTArrayRight<E, Allocator> &()",
15035
+ Style);
15036
+ verifyFormat("operator void **()", Style);
15037
+ verifyFormat("operator const FooRight<Object> &()", Style);
15038
+ verifyFormat("operator const FooRight<Object> *()", Style);
15039
+ verifyFormat("operator const FooRight<Object> **()", Style);
15007
15040
15008
15041
Style.PointerAlignment = FormatStyle::PAS_Left;
15009
15042
verifyFormat("Foo::operator*();", Style);
15043
+ verifyFormat("Foo::operator**();", Style);
15010
15044
verifyFormat("Foo::operator void*();", Style);
15045
+ verifyFormat("Foo::operator void**();", Style);
15011
15046
verifyFormat("Foo::operator/*comment*/ void*();", Style);
15012
15047
verifyFormat("Foo::operator/*a*/ const /*b*/ void*();", Style);
15013
15048
verifyFormat("Foo::operator/*a*/ volatile /*b*/ void*();", Style);
15014
15049
verifyFormat("Foo::operator()(void*);", Style);
15015
15050
verifyFormat("Foo::operator*(void*);", Style);
15016
15051
verifyFormat("Foo::operator*();", Style);
15052
+ verifyFormat("Foo::operator<int>*();", Style);
15053
+ verifyFormat("Foo::operator<Foo>*();", Style);
15054
+ verifyFormat("Foo::operator<int>**();", Style);
15055
+ verifyFormat("Foo::operator<Foo>**();", Style);
15056
+ verifyFormat("Foo::operator<int>&();", Style);
15057
+ verifyFormat("Foo::operator<Foo>&();", Style);
15058
+ verifyFormat("Foo::operator<int>&&();", Style);
15059
+ verifyFormat("Foo::operator<Foo>&&();", Style);
15017
15060
verifyFormat("operator*(int (*)(), class Foo);", Style);
15018
15061
15019
15062
verifyFormat("Foo::operator&();", Style);
@@ -15035,9 +15078,17 @@ TEST_F(FormatTest, OperatorSpacing) {
15035
15078
verifyFormat("Foo::operator&&(void&&);", Style);
15036
15079
verifyFormat("Foo::operator&&();", Style);
15037
15080
verifyFormat("operator&&(int(&&)(), class Foo);", Style);
15081
+ verifyFormat("operator const nsTArrayLeft<E>&()", Style);
15082
+ verifyFormat("[[nodiscard]] operator const nsTArrayLeft<E, Allocator>&()",
15083
+ Style);
15084
+ verifyFormat("operator void**()", Style);
15085
+ verifyFormat("operator const FooLeft<Object>&()", Style);
15086
+ verifyFormat("operator const FooLeft<Object>*()", Style);
15087
+ verifyFormat("operator const FooLeft<Object>**()", Style);
15038
15088
15039
15089
// PR45107
15040
15090
verifyFormat("operator Vector<String>&();", Style);
15091
+ verifyFormat("operator const Vector<String>&();", Style);
15041
15092
verifyFormat("operator foo::Bar*();", Style);
15042
15093
verifyFormat("operator const Foo<X>::Bar<Y>*();", Style);
15043
15094
verifyFormat("operator/*a*/ const /*b*/ Foo /*c*/<X> /*d*/ ::Bar<Y>*();",
0 commit comments