{ %NORUN } program tw24071; {$mode delphi} type TA<T> = class end; TB<T> = class public type TC = class; TC = class(TA<TC>) private procedure Foo; virtual; abstract; end; end; var X: TB<Integer>; begin end.