소스 검색

compiler: allow generics as class parents + fixed test

git-svn-id: trunk@16708 -
paul 14 년 전
부모
커밋
d55a141d70
2개의 변경된 파일5개의 추가작업 그리고 12개의 파일을 삭제
  1. 0 8
      compiler/pdecobj.pas
  2. 5 4
      tests/test/tgeneric16.pp

+ 0 - 8
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

+ 5 - 4
tests/test/tgeneric16.pp

@@ -1,20 +1,21 @@
 program Project1;
 
 {$mode objfpc}{$H+}
+{$apptype console}
 
 type
 
   { TStack }
 
   generic TStack<T> = class(TObject)
-   public
+  public
     procedure Clear; virtual;
     destructor Destroy; override;
   end;
 
-  { TIntegerStack }
+  { TAdvStack }
 
-  TAdvStack = class(specialize TStack<T>)
+  generic TAdvStack<T> = class(specialize TStack<T>)
   public
     procedure Clear; override;
   end;
@@ -25,7 +26,7 @@ type
 
   { TIntegerStack2 }
 
-  TIntegerStack2 = class(specialize TAdvStack<Integer>);
+  TIntegerStack2 = class(specialize TAdvStack<Integer>)
   public
     procedure Clear; override;
   end;