<div dir="ltr"><div class="gmail_extra">Maceij,</div><div class="gmail_extra"><br></div><div class="gmail_extra">I did a build using your revision 33381. Compilation with "make all" worked with fpc 3.0.0 as a starting compiler. However my first test with it revealed a pretty serious bug:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">program mytest;</div><div class="gmail_extra"><br></div><div class="gmail_extra">{$mode delphi}</div><div class="gmail_extra"><br></div><div class="gmail_extra">type</div><div class="gmail_extra">  TFoo = record</div><div class="gmail_extra">  private</div><div class="gmail_extra">    class operator Initialize(var aFoo: TFoo);</div><div class="gmail_extra">    class operator Finalize(var aFoo: TFoo);</div><div class="gmail_extra">  public</div><div class="gmail_extra">    F: Integer;</div><div class="gmail_extra">  end;</div><div class="gmail_extra"><br></div><div class="gmail_extra">  TFooArray = array of TFoo;</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">class operator TFoo.Initialize(var aFoo: TFoo);</div><div class="gmail_extra">begin</div><div class="gmail_extra">  WriteLn;</div><div class="gmail_extra">  WriteLn('TFoo.Initialize');</div><div class="gmail_extra">  aFoo.F := 1;</div><div class="gmail_extra">end;</div><div class="gmail_extra"><br></div><div class="gmail_extra">class operator TFoo.Finalize(var aFoo: TFoo);</div><div class="gmail_extra">begin</div><div class="gmail_extra">  aFoo.F := 3;</div><div class="gmail_extra">  WriteLn('TFoo.Finalize');</div><div class="gmail_extra">  WriteLn;</div><div class="gmail_extra">end;</div><div class="gmail_extra"><br></div><div class="gmail_extra">procedure Test;</div><div class="gmail_extra">var</div><div class="gmail_extra">  Foos: TFooArray;</div><div class="gmail_extra">begin</div><div class="gmail_extra">  SetLength(Foos, 5);</div><div class="gmail_extra">  WriteLn('Foos[0].F = ', Foos[0].F);</div><div class="gmail_extra">  WriteLn('Foos[1].F = ', Foos[1].F);</div><div class="gmail_extra">  WriteLn;</div><div class="gmail_extra">end;</div><div class="gmail_extra"><br></div><div class="gmail_extra">begin</div><div class="gmail_extra">  Test;</div><div class="gmail_extra">end.</div><div><br></div><div>Outputs:</div><div><br></div><div><div>Foos[0].F = 0<br></div><div>Foos[1].F = 0</div><div><br></div><div>TFoo.Finalize</div><div><br></div><div>TFoo.Finalize</div><div><br></div><div>TFoo.Finalize</div><div><br></div><div>TFoo.Finalize</div><div><br></div><div>TFoo.Finalize</div></div><div><br></div><div>Notice:</div><div><br></div><div>TFoo.Initialize is never invoked.</div></div></div></div>