File tree Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Expand file tree Collapse file tree 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
22182218{
22192219 if (
22202220 my_decl->has_name (" operator=" )
2221+ && (*parameters).ssize () > 1
22212222 && (*parameters)[0 ]->has_name (" this" )
22222223 && (*parameters)[0 ]->direction () == passing_style::inout
2223- && (*parameters).ssize () > 1
22242224 )
22252225 {
22262226 return true ;
@@ -2266,9 +2266,9 @@ auto function_type_node::is_destructor() const
22662266{
22672267 if (
22682268 my_decl->has_name (" operator=" )
2269+ && (*parameters).ssize () == 1
22692270 && (*parameters)[0 ]->has_name (" this" )
22702271 && (*parameters)[0 ]->direction () == passing_style::move
2271- && (*parameters).ssize () == 1
22722272 )
22732273 {
22742274 return true ;
@@ -5865,9 +5865,12 @@ class parser
58655865 return {};
58665866 }
58675867
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" )
58715874 && (*func->parameters )[0 ]->pass != passing_style::inout
58725875 && (*func->parameters )[0 ]->pass != passing_style::out
58735876 && (*func->parameters )[0 ]->pass != passing_style::move
You can’t perform that action at this time.
0 commit comments