omo definir uma declaração de encaminhamento com tipos genéricos no Delphi 201

Eu me deparo com o que parece ser um problema muito clássico: um item e uma classe de coleção, ambos referenciando um ao outro, que exigem uma declaração de encaminhamento. Estou usando o Delphi 2010 com a atualização 5.

Isso funciona bem com classes não genéricas, mas não consigo solucionar o erro E2086 com tipos genéricos:

type
  // Forward declarations
  TMyElement = class; // E2086: Type 'TMyElement' is not yet completely defined

  TMyCollection<T:TMyElement> = class
    //
  end;

  TMyElement = class
    FParent: TMyCollection<TMyElement>;
  end;

O mesmo problema ocorre ao alternar a ordem da declaração de class

Não encontrei nenhuma referência a esse problema aqui ou no QualityCentral (outros problemas com o E2086 foram encontrados, mas não relacionados a este caso de uso)

única solução alternativa que tenho por enquanto é declarar o pai como TObject e convertê-lo no tipo genérico da coleção quando necessário (não uma solução limpa ..

Como você resolveu esse problema ou declarou antecipadamente suas classes genéricas?

Obrigado

[Editar em 22 de outubro de 2011] Acompanhe o QualityCentral: Relatei esse bug na central de qualidadeAqu

Este foi fechado recentemente pelo EMB com o seguinte status de resolução: Resolução: conforme projetado Resolvido na compilação: 16.0.4152

Eu só tenho o Delphi 2010. Alguém poderia confirmar que foi corrigido no Delphe XE2 Update1 ou significa que funciona 'como esperado'?

[Editar em 23 de outubro de 2011] Resposta final da EMB: EMB confirmou hoje que o uso de declaração direta de um tipo genérico énão suportad pelo compilador Delphi atual. Você pode ver a resposta deles no QC, com o link fornecido acima.

questionAnswers(3)

yourAnswerToTheQuestion