Mas*_*ler 5 delphi include compiler-warnings
我正在将一些代码从一个框架库移植到另一个框架库,这需要我注释掉大部分代码才能使其编译,然后仔细恢复它们.与此同时,由于所有已注释掉的代码,我收到了大量警告.所以我决定写一个快速包含文件来压制它们:
{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code'}
{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}
Run Code Online (Sandbox Code Playgroud)
我把它包括在给我大量警告的所有单元中,但是现在当我编译时,编译器返回如下消息:
[DCC警告] unfinished.inc(1):W1054对带有注释掉代码的未移植单元的警告被禁止
我想告诉我,警告来自执行包含的单位,而不是包含文件本身.有没有办法做到这一点,或者将单元的名称用于消息,而不是实际将$ MESSAGE指令移出include文件并进入我执行此操作的每个单元?
Nin*_*rry 14
这是一个技巧,它使用"未使用的私有方法"的编译器提示包含单元名称的事实,即使在包含文件中声明具有私有方法的类,也会声明该类.
这要求包含文件的include-directive出现在允许声明的单元的一部分中,因此要么在接口部分中的uses子句之后,要么在实现部分的uses子句之后.
interface
uses Foo, Bar, Socks;
{$include Unfinished.inc}
Run Code Online (Sandbox Code Playgroud)
您的包含文件应如下所示:
{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code, Unit name see next line'}
type
  TUnit_With_Suppressed_Warnings = class
  private
    procedure UnitWithSuppressedWarnings; virtual; abstract;
  end;
{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}
Run Code Online (Sandbox Code Playgroud)
现在,您将为包含该包含文件的每个单元获取以下两条消息:
[DCC警告] unfinished.inc(1):W1054对带有注释掉代码的未移植单元的警告被抑制,单元名称见下一行
[DCC提示] actualunitname.pas(5):声明了私有符号UnitWithSuppressedWarnings但从未使用过.
请注意,实际单位的名称显示在第二行.
备注:如果编译器提示已关闭,您将看不到第二行.