> On Nov 27, 2018, at 4:59 AM, Sven Barth via fpc-pascal 
> <fpc-pascal@lists.freepascal.org> wrote:
> 
> Best check again once you've done the switch to tconstsym for constants. :) 
> 

I made most of the changes you mentioned so please look. Including the 
constsyms didn’t break anything and helped to clean up the code. I would have 
done that from the start but I wasn’t sure you wanted me mixing in new types.

Some things remaining:

1) kSomeDays is a typed const so I get a load node instead of tsetconstnode, 
which I need to need to know in order to make the name string. See the TODO’s 
in tgenericparamdef.create.

type
        TDay = (Mon, Tue, Wed);
        TDays = set of TDay;
const
        kSomeDays:TDays = [Mon, Wed];


var
        d: specialize TMyRecord_Set<integer,kSomeDays>; // this doesn’t work
        d: specialize TMyRecord_Set<integer,[Mon,Wed]>; // this works because I 
get a set node


2) Again in tgenericparamdef.create I don’t know how to make the pretty name 
string from a set (see the TODO)

3) You may be right about forcing the const type at declaration. I still kept 
the undefined const placeholder in there but if you have nested specializations 
you can get type errors because the placeholder uses a nil node. It’s too early 
to know if there’s any reason for undefined consts.

4) I’m not sure if changing the types to consts messed up PPU loading or it 
works out of the box. Seems to be ok from initial tests though.

Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to