Michael Van Canneyt schrieb:

On Fri, 17 Aug 2007, Florian Klaempfl wrote:

Mattias Gaertner schrieb:
On Thu, 16 Aug 2007 23:31:25 +0200 (CEST)
Michael Van Canneyt <[EMAIL PROTECTED]> 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?
Is there a need to support this?

Well, it seems rather strange that the type block would not allow all
possible types.

Only a few types can be generic as well. Nested classes cause a lot of hidden pitfalls, that's why they aren't allowed.
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to