> On Feb 16, 2019, at 9:42 AM, Sven Barth via fpc-pascal
> <[email protected]> wrote:
>
> When you create the constant symbols for the specialization you need to make
> sure that they belong to the surrounding symtable, not the specialized
> generic.
>
I probably didn’t get that right then. The constants are significantly
different because they are generated during specialization unlike normal types
which are already defined and have ownerships.
Btw I just saw this (in types_dec from pdecl.pas) and not sure it applies to
constants. The symbol in question here was created in parse_generic_parameters
and tconstsym doesn’t have a typedef method so I don’t know what casting to
ttypesym did. Maybe tconstsym.constdef needs to be registered but I have no
idea.
{ we are not freeing the type parameters, so register them }
for i:=0 to generictypelist.count-1 do
begin
ttypesym(generictypelist[i]).register_sym;
tstoreddef(ttypesym(generictypelist[i]).typedef).register_def;
end;
Regards,
Ryan Joseph
_______________________________________________
fpc-pascal maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal