Internal error 200709083 when mixing CORBA interfaces with COM interfaces
Original Reporter info from Mantis: soerensen3
-
Reporter name:
Original Reporter info from Mantis: soerensen3
- Reporter name:
Description:
I stumbled on this by accident because I forgot to set the {$interfaces CORBA} switch in one unit. The bug occured when I inherited one Interface from a CORBA interface, but only in combination with a forward declaration. It is probably best if you have a look at the source or "Steps to reproduce" to understand the problem.
Steps to reproduce:
For the full code please see the attachment.
The bug only occured (for me) if all these conditions where met:
Please assume the following:
- Interface1 is a Corba interface
- Interface2 and Interface3 are COM Interfaces
IInterface3 = interface; // <-- IInterface3 is forward declared because it is referenced in IInterface2
IInterface2 = interface ( IInterface )
['{EB2E9267-C542-4784-81AE-A4C6ED044748}']
function DoSomethingElse: IInterface3;
end;
IInterface3 = interface( IInterface2 ) // <-- IInterface3 inherits IInterface2
['{EB2E9267-C542-4784-81AE-A4C6ED044748}']
function DoSomethingCompletelyDifferent: Integer;
end;
This still compiles but until this:
( a as IInterface2 ).DoSomethingElse; //<-- internal error here.
Additional information:
This report is about getting an internal error instead of a more helpful error message.
Mantis conversion info:
- Mantis ID: 36720
- OS: Linux
- OS Build: 5.4.15-2-MANJARO
- Build: r43411
- Platform: x86_64
- Version: 3.3.1
- Fixed in version: 3.3.1
- Fixed in revision: 44221 (#7e952bf5)