views:

279

answers:

1

It certainly looks like a bug, but I only have the trial version so it may have been fixed.

ITestInterface = interface
  ['{9445CED8-4DBA-4EDB-9897-60980B438BE4}']
  procedure Foo1;
  procedure Foo2;
end;

TTest = class(TInterfacedObject, ITestInterface)

end;

The above will rightly not compile. but the following does!

ITestInterface<t> = interface
  ['{9445CED8-4DBA-4EDB-9897-60980B438BE4}']
  procedure Foo1;
  procedure Foo2;
end;

TTest<T> = class(TInterfacedObject, ITestInterface<T>)

end;

Edit: I have just found it it will fail if you try and instantiate TTest. So a little inconsistent, but not that bad!

+6  A: 

Yes, a bug. http://qc.codegear.com/ is the place to go to report bugs.

Barry Kelly
Since I only have the trial, I wasn't sure if this has already been fixed in the full release.
Steve