diff --git a/compiler/pdecobj.pas b/compiler/pdecobj.pas index d900674618..9deb3a3d6e 100644 --- a/compiler/pdecobj.pas +++ b/compiler/pdecobj.pas @@ -527,14 +527,6 @@ implementation hasparentdefined:=true; end; - { no generic as parents } - if assigned(childof) and - (df_generic in childof.defoptions) then - begin - Message(parser_e_no_generics_as_types); - childof:=nil; - end; - { if no parent class, then a class get tobject as parent } if not assigned(childof) then begin diff --git a/tests/test/tgeneric16.pp b/tests/test/tgeneric16.pp index 1e3c601bfe..df3a4e4c84 100644 --- a/tests/test/tgeneric16.pp +++ b/tests/test/tgeneric16.pp @@ -1,20 +1,21 @@ program Project1; {$mode objfpc}{$H+} +{$apptype console} type { TStack } generic TStack = class(TObject) - public + public procedure Clear; virtual; destructor Destroy; override; end; - { TIntegerStack } + { TAdvStack } - TAdvStack = class(specialize TStack) + generic TAdvStack = class(specialize TStack) public procedure Clear; override; end; @@ -25,7 +26,7 @@ type { TIntegerStack2 } - TIntegerStack2 = class(specialize TAdvStack); + TIntegerStack2 = class(specialize TAdvStack) public procedure Clear; override; end;