fcl-passrc: parser: check semicolon in arg list, bug #33742

git-svn-id: trunk@38997 -
This commit is contained in:
Mattias Gaertner 2018-05-16 06:42:48 +00:00
parent a3c5ac010f
commit faca63449f
3 changed files with 16 additions and 3 deletions

View File

@ -4457,6 +4457,7 @@ begin
end;
if CurToken = EndToken then
break;
CheckToken(tkSemicolon);
end;
end;

View File

@ -1513,7 +1513,7 @@ Var
A : TPasArgument;
begin
StartVisibility(visPublished);
AddMember('Property Somethings[ACol : Integer,ARow : Integer] : integer Read GetF; default');
AddMember('Property Somethings[ACol : Integer; ARow : Integer] : integer Read GetF; default');
ParseClass;
AssertProperty(Property1,visPublished,'Somethings','GetF','','','',2,True,False);
AssertEquals('Published property',vispublished,Property1.Visibility);

View File

@ -371,8 +371,9 @@ type
Procedure TestProcedureResultFail;
Procedure TestProc_ArgVarPrecisionLossFail;
Procedure TestProc_ArgVarTypeAliasObjFPC;
Procedure TestProc_ArgVarTypeAliasDelphi; // ToDo
Procedure TestProc_ArgVarTypeAliasDelphiMismatchFail; // ToDo
Procedure TestProc_ArgVarTypeAliasDelphi;
Procedure TestProc_ArgVarTypeAliasDelphiMismatchFail;
Procedure TestProc_ArgMissingSemicolonFail;
Procedure TestProcOverload;
Procedure TestProcOverloadImplDuplicateFail;
Procedure TestProcOverloadImplDuplicate2Fail;
@ -5615,6 +5616,17 @@ begin
nIncompatibleTypeArgNoVarParamMustMatchExactly);
end;
procedure TTestResolver.TestProc_ArgMissingSemicolonFail;
begin
StartProgram(false);
Add([
'type TScalar = double;',
'procedure SinCos (var sinus: TScalar var cosinus: TScalar);',
'begin end;',
'begin']);
CheckParserException('Expected ";" at token "var" in file afile.pp at line 3 column 38',nParserExpectTokenError);
end;
procedure TTestResolver.TestProcOverload;
var
El: TPasElement;