浏览代码

fcl-passrc: added test for unit of only external stuff does not generate a hint

git-svn-id: trunk@35737 -
Mattias Gaertner 8 年之前
父节点
当前提交
972b24286d
共有 1 个文件被更改,包括 22 次插入0 次删除
  1. 22 0
      packages/fcl-passrc/tests/tcuseanalyzer.pas

+ 22 - 0
packages/fcl-passrc/tests/tcuseanalyzer.pas

@@ -74,6 +74,7 @@ type
 
     // single module hints
     procedure TestM_Hint_UnitNotUsed;
+    procedure TestM_Hint_UnitNotUsed_No_OnlyExternal;
     procedure TestM_Hint_ParameterNotUsed;
     procedure TestM_Hint_ParameterNotUsed_Abstract;
     procedure TestM_Hint_LocalVariableNotUsed;
@@ -832,6 +833,27 @@ begin
   CheckHasHint(mtHint,nPAUnitNotUsed,'Unit "unit2" not used in afile');
 end;
 
+procedure TTestUseAnalyzer.TestM_Hint_UnitNotUsed_No_OnlyExternal;
+begin
+  AddModuleWithIntfImplSrc('unit2.pp',
+    LinesToStr([
+    'var State: longint; external name ''state'';',
+    'procedure DoIt; external name ''doing'';',
+    '']),
+    LinesToStr([
+    ]));
+
+  StartProgram(true);
+  Add('uses unit2;');
+  Add('begin');
+  Add('  State:=3;');
+  Add('  DoIt;');
+  AnalyzeProgram;
+
+  // unit hints: no hint, even though no code is actually used
+  CheckHasHint(mtHint,nPAUnitNotUsed,'Unit "unit2" not used in afile',false);
+end;
+
 procedure TTestUseAnalyzer.TestM_Hint_ParameterNotUsed;
 begin
   StartProgram(true);