This happens for example with:
package Q3 is
type Types is (One, Two);
end Q3;
with Q3;
package P3 is
Kind : Q3.Types := Q3.Types.One;
end P3;
and prevents the error from being given.
gcc/ada/ChangeLog:
PR ada/112979
* sem_ch8.adb (Find_Selected_Component): Try to recognize the
object operation notation only if the selector is a subprogram.
Current_Entity (Selector_Name (N));
begin
if Present (F)
- and then Is_Overloadable (F)
+ and then Is_Subprogram (F)
and then Present (First_Entity (F))
and then not Is_Tagged_Type (Etype (First_Entity (F)))
then