Hi list, after a long pause I'm trying to revive some code which I didn't touch as long as early this year. At that time it compiled OK with trunk FPC (I believe version 2.5.1). Now I'm trying to make that code work with current stable (AFAICS that's 2.4.4). Everything went smooth until compiler stumbled upon:
function TheInterfaceListTest.Value(const It: IInterface): Integer; begin Result := (It as TInterfacedTracedObject).ID; // <-- line 238 end; with the error: "hecontnrs_list_test.pas(238,17) Error: class type expected, but got "IUnknown". FYI: TInterfacedTracedObject interface is: TInterfacedTracedObject = class(TInterfacedObject) private FID: Integer; FTracer: TBits; public constructor Create(const ATracer: TBits; const AID: Integer); destructor Destroy; override; property ID: Integer read FID; property Tracer: TBits read FTracer; end; I suppose something has changed with the FPC interfaces and/or using the "as" keyword in the above construct. Of course I searched e.g. the "changes" wiki pages 2.4.0->2.4.2->2.4.4(and even ->2.6.0), but I failed to find anything related, the same result for the mailing lists and general googling attempts. And of course I tried every single change to the code I could imagine may work. That said, I'm sure it's my fault to find the info or it's my fault in some other way - me being blind to see something obviously wrong with the code in the snippet, though I'm sure it used to compile w/o problem before. Can please someone enlighten me? Thanks in advance, sorry for being dumb ;-) Best regards, -bflm PS: Actually I found some recent discussions about FPC interfaces, but if I understood them correctly, no one of them seemed to me like an explanation for my problem. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal