On Tue, 29 Jul 2025, Martin Frb via fpc-devel wrote:
Are there? Or is there something else? The below compiles. No duplicate TBar. Looks like a forward declaration... program Project1;{$Mode objfpc} type generic TBar<A,B> = class; // forward generic TBar<A, B> = class F:A; X:B; end; begin end.But the next does not compile "Identifier not found TBar" (inside TFoo). Yet the identifier is clearly there.https://gitlab.com/freepascal.org/fpc/source/-/issues/24097 seems to say it is supported since 2022?program Project1; {$Mode objfpc} type generic TBar<A,B> = class; // forward generic TFoo<A, B> = class F:specialize TBar<A>;
You're missing a type parameter here. According to the definition, TBar needs 2 type parameters.
X:B; end; generic TBar<A, B> = class F:specialize TFoo<A>;
Same here, you're missing a type parameter. TFoo needs 2 type parameters. if you fix that (I added B in both cases, just to test) it compiles. Michael.
_______________________________________________ fpc-devel maillist - [email protected] https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
