Функция, возвращающая запись с полем интерфейса

Задав этот вопрос о полях интерфейса в записях , я предположил, что следующее будет работать (обратите внимание на утверждение):

type
  TRec  = record
    Intf : IInterface;
  end;

  TTestClass = class
  public
    function ReturnRec : TRec ;
  end;

  // Implementation 
  function TTestClass.ReturnRec : TRec ;
  begin
    Assert (Result.Intf = nil);    // Interface field in record should be initialized!
    Result.Intf := TInterfacedObject.Create;
  end;

Я проверил это с помощью следующего кода:

  for I := 1 to 1000 do
    Rec := Test.ReturnRec;

и утверждение не выполняется!

В чем моя ошибка? Какое предположение неверно?

8
задан Community 23 May 2017 в 12:27
поделиться