[fpc-devel] Assigning class procedures
    Michalis Kamburelis 
    mkambi at poczta.onet.pl
       
    Wed Mar 15 01:29:09 CET 2006
    
    
  
Hi
I'm just migrating a lot of code from delphi to objfpc mode, and I 
noticed that in objfpc mode I can't do
   MyFunc := @TMyClass.Func;
where TMyClass.Func is a class procedure that matches the type of 
MyFunc. I'm attaching the complete source code. With
   fpc -S2 test_1.pas
the attached code doesn't compile, fails with message
   Error: Incompatible types: got "<class method type of 
procedure(LongInt) of object;Register>" expected "<procedure variable 
type of procedure(LongInt) of object;Register>"
Tested with various FPC versions (2.0.0, 2.0.2, 2.0.3 and 2.1.1 
(revision 2911)).
With
   fpc -Sd test_1.pas
and
   dcc test_1.pas
it compiles OK.
I initially intended to submit this as a bug, but I decided to ask here 
first. This *is* a bug, right ? I mean, delphi mode behavior seems 
sensible here, passing class procedures as procedures of objects should 
be allowed.
Michalis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_1.pas
Type: text/x-pascal
Size: 456 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20060315/14dd7371/attachment.pas>
    
    
More information about the fpc-devel
mailing list