This does work properly:
TGenericC<T> = class(TNonGeneric, IGeneric<T>);
TGenericC<T> = class(TGeneric<T>, INonGeneric);
TGenericC<T> = class(TGeneric<T, R>, IGeneric<T, R>);
And this doesn't:
TGenericC<T> = class(TNonGeneric, IGeneric<IList<T>>);
TGenericC<T> = class(TGeneric<IList<T>>, INonGeneric);
TGenericC<T> = class(TGeneric<IList<T>, R>, IGeneric<R, IList<T>>)
This does work properly:
TGenericC<T> = class(TNonGeneric, IGeneric<T>);TGenericC<T> = class(TGeneric<T>, INonGeneric);TGenericC<T> = class(TGeneric<T, R>, IGeneric<T, R>);And this doesn't:
TGenericC<T> = class(TNonGeneric, IGeneric<IList<T>>);TGenericC<T> = class(TGeneric<IList<T>>, INonGeneric);TGenericC<T> = class(TGeneric<IList<T>, R>, IGeneric<R, IList<T>>)