-- Traverse Expr and clear the Controlling_Argument of calls to
-- nonabstract functions.
- procedure Remove_Formals (Id : Entity_Id);
- -- Remove formals from homonym chains and make them not visible
-
procedure Restore_Original_Selected_Component;
-- Traverse Expr searching for dispatching calls to functions whose
-- original node was a selected component, and replace them with
Remove_Ctrl_Args (Expr);
end Remove_Controlling_Arguments;
- --------------------
- -- Remove_Formals --
- --------------------
-
- procedure Remove_Formals (Id : Entity_Id) is
- F : Entity_Id := First_Formal (Id);
-
- begin
- while Present (F) loop
- Set_Is_Immediately_Visible (F, False);
- Remove_Homonym (F);
- Next_Formal (F);
- end loop;
- end Remove_Formals;
-
-----------------------------------------
-- Restore_Original_Selected_Component --
-----------------------------------------
Preanalyze_Spec_Expression (Expr, Standard_Boolean);
Inside_Class_Condition_Preanalysis := False;
- Remove_Formals (Subp);
- Pop_Scope;
+ End_Scope;
-- If this preanalyzed condition has occurrences of dispatching calls
-- using the Object.Operation notation, during preanalysis such calls
-- Resolve new expression in function context
- Install_Formals (Predicate_Function (Typ));
Push_Scope (Predicate_Function (Typ));
+ Install_Formals (Predicate_Function (Typ));
Analyze_And_Resolve (Expr, Standard_Boolean);
- Pop_Scope;
+ End_Scope;
end if;
end;
end;