[fpc-devel] Generics

Mattias Gaertner nc-gaertnma at netcologne.de
Fri Aug 17 00:18:29 CEST 2007


On Thu, 16 Aug 2007 23:31:25 +0200 (CEST)
Michael Van Canneyt <michael at freepascal.org> wrote:

>[...]
> > Why is the local variable block needed?
> 
> It is not. I asked the same question. It was added for symmetry
> reasons: if a local type block is allowed, then a var block should
> also be allowed.
> 
> But they are not different from local fields.

Strange. ok.

What local types are/will be allowed?

For example, this is currently not allowed:

  generic TTree<T> = class(TObject)
  type public 
    TTreeNode = specialize TNode<T>;
  end;

And this neither:

  generic TTree<T> = class(TObject)
  type public
    TTreeNode = class
      Data: T;
    end;
  end;


OTOH records and pointers are allowed.
Will this stay, or is this just not yet implemented?


Mattias



More information about the fpc-devel mailing list