File tree 1 file changed +8
-5
lines changed
1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -2218,9 +2218,9 @@ auto function_type_node::is_assignment() const
2218
2218
{
2219
2219
if (
2220
2220
my_decl->has_name (" operator=" )
2221
+ && (*parameters).ssize () > 1
2221
2222
&& (*parameters)[0 ]->has_name (" this" )
2222
2223
&& (*parameters)[0 ]->direction () == passing_style::inout
2223
- && (*parameters).ssize () > 1
2224
2224
)
2225
2225
{
2226
2226
return true ;
@@ -2266,9 +2266,9 @@ auto function_type_node::is_destructor() const
2266
2266
{
2267
2267
if (
2268
2268
my_decl->has_name (" operator=" )
2269
+ && (*parameters).ssize () == 1
2269
2270
&& (*parameters)[0 ]->has_name (" this" )
2270
2271
&& (*parameters)[0 ]->direction () == passing_style::move
2271
- && (*parameters).ssize () == 1
2272
2272
)
2273
2273
{
2274
2274
return true ;
@@ -5865,9 +5865,12 @@ class parser
5865
5865
return {};
5866
5866
}
5867
5867
5868
- if (
5869
- func->parameters ->ssize () > 0
5870
- && (*func->parameters )[0 ]->has_name (" this" )
5868
+ if (func->parameters ->ssize () == 0 )
5869
+ {
5870
+ error ( " an operator= function must have a parameter" , false );
5871
+ }
5872
+ else if (
5873
+ (*func->parameters )[0 ]->has_name (" this" )
5871
5874
&& (*func->parameters )[0 ]->pass != passing_style::inout
5872
5875
&& (*func->parameters )[0 ]->pass != passing_style::out
5873
5876
&& (*func->parameters )[0 ]->pass != passing_style::move
You can’t perform that action at this time.
0 commit comments