{ %NORUN }

program tw27750b;

{$MODE OBJFPC}
{$modeswitch advancedrecords}

type

  { TGeneric }

  generic TGeneric<Foo, Bar> = record
  public type
    TGFB = specialize TGeneric<Foo, Bar>;
  public
    class operator :=(aFoo : Foo) : TGFB;
    class operator :=(aBar : Bar) : TGFB;
  end;

{ TGeneric }

class operator TGeneric.:=(aFoo: Foo): TGFB;
begin

end;

class operator TGeneric.:=(aBar: Bar): TGFB;
begin

end;

begin
end.