* Support for final modifier

git-svn-id: trunk@35916 -
This commit is contained in:
michael 2017-04-23 12:33:28 +00:00
parent 6f951e7be9
commit 75e5467ba8
2 changed files with 13 additions and 2 deletions

View File

@ -842,7 +842,7 @@ type
pmExport, pmOverload, pmMessage, pmReintroduce,
pmInline,pmAssembler, pmPublic,
pmCompilerProc,pmExternal,pmForward, pmDispId,
pmNoReturn, pmfar);
pmNoReturn, pmfar, pmFinal);
TProcedureModifiers = Set of TProcedureModifier;
TProcedureMessageType = (pmtNone,pmtInteger,pmtString);
@ -1430,7 +1430,7 @@ const
'export', 'overload', 'message', 'reintroduce',
'inline','assembler','public',
'compilerproc','external','forward','dispid',
'noreturn','far');
'noreturn','far','final');
VariableModifierNames : Array[TVariableModifier] of string
= ('cvar', 'external', 'public', 'export', 'class', 'static');

View File

@ -109,6 +109,7 @@ type
Procedure TestMethodVirtual;
Procedure TestMethodVirtualSemicolon;
Procedure TestMethodVirtualAbstract;
procedure TestMethodVirtualAbstractFinal;
Procedure TestMethodOverride;
procedure TestMethodDynamic;
procedure TestMethodReintroduce;
@ -1003,6 +1004,16 @@ begin
AssertEquals('Default calling convention',ccDefault, Method1.ProcType.CallingConvention);
end;
procedure TTestClassType.TestMethodVirtualAbstractFinal;
begin
AddMember('Procedure DoSomething(A : Integer) virtual; abstract; final');
ParseClass;
DefaultMethod;
AssertEquals('Default visibility',visDefault,Method1.Visibility);
AssertEquals('Virtual, abstract modifiers',[pmVirtual,pmAbstract,pmFinal],Method1.Modifiers);
AssertEquals('Default calling convention',ccDefault, Method1.ProcType.CallingConvention);
end;
procedure TTestClassType.TestMethodOverride;
begin