On Mon, 24 Nov 2025, Martin Frb via fpc-devel wrote:

Normally, if I refer to a type then the first type found by the name will be taken => and if that type is not compatible, then I get an error.
=> See Example 2

But, if I try to specialize a generic, and some other type by the same name exists, and comes first in the search order, then it will be ignored.

The specialize below, ignores the "TFoo = class"  which can not be used, and finds the TFoo from unit1.

Is that intended?

Delphi allows to overload a generic with a non-generic class.

TFoo = class end;
TFoo <a> = class F: a end;

FPC has experimental support for this as far as I know.

So the answer would be: Yes, the specialize will look for a generic definition, ignoring classes
with the same name that are not generic.

Michael.
_______________________________________________
fpc-devel maillist  -  [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to