|
@@ -3916,8 +3916,17 @@ implementation
|
|
|
exit;
|
|
|
end;
|
|
|
{ now search all helpers using the extendeddef as the starting point }
|
|
|
- if m_multi_helpers in current_settings.modeswitches then
|
|
|
- result:=search_best_objectpascal_helper(s,classh.extendeddef,contextclassh,srsym,srsymtable);
|
|
|
+ if (m_multi_helpers in current_settings.modeswitches) and
|
|
|
+ (
|
|
|
+ (current_structdef<>classh) or
|
|
|
+ assigned(classh.extendeddef)
|
|
|
+ ) then
|
|
|
+ begin
|
|
|
+ { this is only allowed if classh is currently parsed }
|
|
|
+ if not assigned(classh.extendeddef) then
|
|
|
+ internalerror(2019110101);
|
|
|
+ result:=search_best_objectpascal_helper(s,classh.extendeddef,contextclassh,srsym,srsymtable);
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
function search_specific_assignment_operator(assignment_type:ttoken;from_def,to_def:Tdef):Tprocdef;
|