The Tagged/Array/Record/Private types are mutually exclusive, so they
can be examined like with a case statement (except for records with
private extensions, but their handling is not affected by this change).
gcc/ada/
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Tune repeated
testing of type kinds.
if Is_Tagged_Type (Typ) then
return True;
- elsif Is_Array_Type (Typ) and then not Is_Constrained (Typ) then
- return True;
+ elsif Is_Array_Type (Typ) then
+ return not Is_Constrained (Typ);
elsif Is_Record_Type (Typ) then
return Has_Discriminants (Typ) and then not Is_Constrained (Typ);
- elsif Is_Private_Type (Typ) and then Has_Discriminants (Typ) then
- return True;
+ elsif Is_Private_Type (Typ) then
+ return Has_Discriminants (Typ);
else
return False;