什么样式检查-gnatyo实际执行?

问题描述 投票:2回答:1

manual读取:

检查子程序体的顺序。如果字母o出现在-gnaty之后的字符串中,那么给定范围内的所有子程序体(例如包体)必须按字母顺序排列。排序规则使用正常的Ada规则来比较字符串,忽略字母大小写,除非有后缀数字后缀,则在排序中使用此后缀的值(例如,Junk2在Junk10之前)。

我认为Junk2Junk10而来是一个奇怪的执行风格的实际灵感。但是实际触发它的一些代码的例子是什么?我无法通过无序功能定义或任务组来抱怨这个选项。例如,在使用gnat make -gnatyo编译以下内容时,我不会抱怨:

procedure Disordered is
   function Test return Natural;
   function Zest return Natural;

   --  disordered function bodies
   function Zest return Natural is (1);
   function Test return Natural is (2);
begin
   null;
end Disordered;
ada gnat
1个回答
5
投票

你有:

   --  disordered function bodies
   function Zest return Natural is (1);
   function Test return Natural is (2);

但从技术上讲,这些不是次级方案机构。它们被称为表达函数。这种明确分离的原因是包子规范中不允许使用子程序体,而表达函数则不允许。在示例中使用实际的子程序体将给出预期的样式警告:

   function Zest return Natural is 
   begin
      return 1;
   end Zest;

   function Test return Natural is
   begin
      return 2;
   end Test;

(因为你提到了任务机构;那些也不是子程序机构)

© www.soinside.com 2019 - 2024. All rights reserved.