From 4bbbf75d32c497978cd116a79897aa883a48e864 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Tue, 7 Nov 2017 16:28:44 +0000 Subject: [PATCH] fcl-passrc: resolver: unit not used: use position of uses expression git-svn-id: trunk@37568 - --- packages/fcl-passrc/src/pasuseanalyzer.pas | 8 +++++--- packages/fcl-passrc/tests/tcuseanalyzer.pas | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/fcl-passrc/src/pasuseanalyzer.pas b/packages/fcl-passrc/src/pasuseanalyzer.pas index d2663c7df1..9d35c15598 100644 --- a/packages/fcl-passrc/src/pasuseanalyzer.pas +++ b/packages/fcl-passrc/src/pasuseanalyzer.pas @@ -1590,6 +1590,7 @@ var i: Integer; UsedModule, aModule: TPasModule; UsesClause: TPasUsesClause; + Use: TPasUsesUnit; begin {$IFDEF VerbosePasAnalyzer} writeln('TPasAnalyzer.EmitSectionHints ',GetElModName(Section)); @@ -1599,13 +1600,14 @@ begin UsesClause:=Section.UsesClause; for i:=0 to length(UsesClause)-1 do begin - if UsesClause[i].Module is TPasModule then + Use:=UsesClause[i]; + if Use.Module is TPasModule then begin - UsedModule:=TPasModule(UsesClause[i].Module); + UsedModule:=TPasModule(Use.Module); if CompareText(UsedModule.Name,'system')=0 then continue; if FindNode(UsedModule)=nil then EmitMessage(20170311191725,mtHint,nPAUnitNotUsed,sPAUnitNotUsed, - [UsedModule.Name,aModule.Name],aModule); + [UsedModule.Name,aModule.Name],Use.Expr); end; end; diff --git a/packages/fcl-passrc/tests/tcuseanalyzer.pas b/packages/fcl-passrc/tests/tcuseanalyzer.pas index ecd924acc6..969abc1b30 100644 --- a/packages/fcl-passrc/tests/tcuseanalyzer.pas +++ b/packages/fcl-passrc/tests/tcuseanalyzer.pas @@ -1570,7 +1570,8 @@ begin 'procedure DoIt; begin end;'])); StartProgram(true); - Add('uses unit2;'); + Add('uses'); + Add(' unit2;'); Add('begin'); AnalyzeWholeProgram;