Undefined symbol

FPC [main] (x64 Win)


program GenericLinkingFailed;
{$mode delphi}

type
  TEnumerator<T> = class
    procedure DoMoveNext; virtual;
  end;

  EnumerableOfType = class
    class function List<T>: TEnumerator<T>;
  end;

  TMyClass<T> = class
    procedure Run;
  end;

  procedure TEnumerator<T>.DoMoveNext;
  begin
  end;

  class function EnumerableOfType.List<T>: TEnumerator<T>;
  begin
  end;

  procedure TMyClass<T>.Run;
  begin
    EnumerableOfType.List<T>();
  end;

begin
end.
- Error: Undefined symbol: P$GENERICLINKINGFAILED$_$TENUMERATOR$1$CRCA64593E5_CRC14A9C49D_$__$$_DOMOVENEXT (first seen in project1.o)