mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 21:19:31 +02:00
fcl-passrc: resolver: hint for text after final end.
git-svn-id: trunk@39329 -
This commit is contained in:
parent
541ead0b93
commit
f0edd93e62
@ -128,7 +128,7 @@ const
|
||||
nTypeIdentifierExpected = 3055;
|
||||
nCannotNestAnonymousX = 3056;
|
||||
nFoundCallCandidateX = 3057;
|
||||
// free 3058
|
||||
nTextAfterFinalIgnored = 3058;
|
||||
// free 3059
|
||||
// free 3060
|
||||
// free 3061
|
||||
@ -245,6 +245,7 @@ resourcestring
|
||||
sTypeIdentifierExpected = 'Type identifier expected';
|
||||
sCannotNestAnonymousX = 'Cannot nest anonymous %s';
|
||||
sFoundCallCandidateX = 'Found call candidate %s';
|
||||
sTextAfterFinalIgnored = 'Text after final ''end.''. ignored by compiler';
|
||||
sSymbolXIsNotPortable = 'Symbol "%s" is not portable';
|
||||
sSymbolXIsExperimental = 'Symbol "%s" is experimental';
|
||||
sSymbolXIsNotImplemented = 'Symbol "%s" is not implemented';
|
||||
|
@ -4392,6 +4392,14 @@ begin
|
||||
PopScope;
|
||||
|
||||
FStep:=prsFinishedModule;
|
||||
|
||||
if (CurrentParser<>nil) and (CurrentParser.Scanner<>nil) then
|
||||
begin
|
||||
CurrentParser.NextToken;
|
||||
if CurrentParser.Scanner.CurToken<>tkEOF then
|
||||
LogMsg(20180628131456,mtHint,nTextAfterFinalIgnored,sTextAfterFinalIgnored,
|
||||
[],nil);
|
||||
end;
|
||||
{$IFDEF VerbosePasResolver}
|
||||
writeln('TPasResolver.FinishModule END ',CurModule.Name);
|
||||
{$ENDIF}
|
||||
|
@ -735,7 +735,7 @@ type
|
||||
constructor Create(AFileResolver: TBaseFileResolver);
|
||||
destructor Destroy; override;
|
||||
procedure OpenFile(AFilename: string);
|
||||
procedure FinishedModule; virtual;
|
||||
procedure FinishedModule; virtual; // called by parser after end.
|
||||
function FormatPath(const aFilename: string): string; virtual;
|
||||
Procedure SetNonToken(aToken : TToken);
|
||||
Procedure UnsetNonToken(aToken : TToken);
|
||||
@ -2863,17 +2863,6 @@ begin
|
||||
DoLog(mtWarning,nIllegalStateForWarnDirective,SIllegalStateForWarnDirective,[Identifier]);
|
||||
exit;
|
||||
end;
|
||||
end
|
||||
else if (Identifier[1] in ['w','W']) and (msDelphi in CurrentModeSwitches) then
|
||||
begin
|
||||
// delphi W number
|
||||
Number:=StrToIntDef(copy(Identifier,2,10),-1);
|
||||
if Number<0 then
|
||||
begin
|
||||
DoLog(mtWarning,nIllegalStateForWarnDirective,SIllegalStateForWarnDirective,[Identifier]);
|
||||
exit;
|
||||
end;
|
||||
Number:=-1;
|
||||
end;
|
||||
|
||||
if Number>=0 then
|
||||
|
@ -804,6 +804,7 @@ type
|
||||
Procedure TestHint_ElementHintsMsg;
|
||||
Procedure TestHint_ElementHintsAlias;
|
||||
Procedure TestHint_ElementHints_WarnOff_SymbolDeprecated;
|
||||
Procedure TestHint_Garbage;
|
||||
|
||||
// attributes
|
||||
Procedure TestAttributes_Ignore;
|
||||
@ -14255,6 +14256,17 @@ begin
|
||||
CheckResolverUnexpectedHints(true);
|
||||
end;
|
||||
|
||||
procedure TTestResolver.TestHint_Garbage;
|
||||
begin
|
||||
StartProgram(false);
|
||||
Add([
|
||||
'begin',
|
||||
'end.']);
|
||||
ParseProgram;
|
||||
CheckResolverHint(mtHint,nTextAfterFinalIgnored,sTextAfterFinalIgnored);
|
||||
CheckResolverUnexpectedHints(true);
|
||||
end;
|
||||
|
||||
procedure TTestResolver.TestAttributes_Ignore;
|
||||
begin
|
||||
StartProgram(false);
|
||||
|
Loading…
Reference in New Issue
Block a user