mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-12 23:09:12 +02:00
* Support for final modifier
git-svn-id: trunk@35916 -
This commit is contained in:
parent
6f951e7be9
commit
75e5467ba8
@ -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');
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user