ARM 4.1.3(13.1) 在2005年的修订版中引入 AI95-00252 和 AI95-00407 (作为清理的一部分,我得到了印象)。
我说这个文件是错的。也许这部分材料是在Ada 2005之前开发的。
确实,在某些情况下,标记对象会自动显示别名: ARM 3.10(9) 说
[...]标记类型的形式参数或通用形式对象被定义为别名。
所以,这是合法的:
declare procedure Proc (Param : in out T) is begin Param.P1; end Proc; V : T; begin Proc (V); end;