Hi, all<div><br /></div><div>Could someone confirm this functionality is merged into trunk? I mean constants in generics.</div><div><br /><br /><div>29.11.2018, 05:24, "Ryan Joseph" <ryan@thealchemistguild.com>:</div><blockquote type="cite"><div><p><br /><br /></p><blockquote> On Nov 29, 2018, at 5:15 AM, Sven Barth via fpc-pascal <<a href="http:///touch/compose?to=fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>> wrote:<br /><br /> Looks better.<br /> The next thing to nuke is the tgenericparamdef. The parameters stored in tdef.genericparas are the parameter symbols, so there should be no need for defs. If necessary some of the code in pgenutil (and related functions) will need to be changed from handling a list of defs to a list of syms.<br /></blockquote><p><br />I added that extra type so that it would be compatible with genericdeflist. I don’t see how that can be removed. The const sym is pulled out in generate_specialization_phase2 and renamed (which I forget why already).<br /><br />So the tgenericparamdef is just a vessel to hold the constsym until generate_specialization_phase2? Either way removing it means breaking genericdeflist right?<br /><br />if typeparam.nodetype <> typen then<br />  begin<br />    { the typesym from paramdef will be added to the list in generate_specialization_phase2 }<br />    paramdef := tgenericparamdef.create(typeparam.resultdef,typeparam,constprettyname);<br />    genericdeflist.Add(paramdef);<br />  end<br />else<br />  begin<br />    constprettyname := '';<br />    genericdeflist.Add(typeparam.resultdef);<br />  end;<br /><br />from generate_specialization_phase2:<br /><br />for i:=0 to genericdef.genericparas.Count-1 do<br />  begin<br />    srsym:=tsym(genericdef.genericparas[i]);<br />    if not (sp_generic_para in srsym.symoptions) then<br />      internalerror(2013092602);<br /><br />    // note: ryan<br />    { set the generic param name of the constsym of tgenericparamdef }<br />    typedef := tstoreddef(context.genericdeflist[i]);<br />    if typedef.typ = genericconstdef then<br />      tgenericparamdef(typedef).typesym.realname := srsym.realname;<br /><br />    generictypelist.add(srsym.realname,typedef.typesym);<br />  end;<br /><br />Regards,<br />        Ryan Joseph<br /><br />_______________________________________________<br />fpc-pascal maillist  -  <a href="http:///touch/compose?to=fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a><br /><a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal" target="_blank" rel="noopener noreferrer">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pas…</a><br /></p></div></blockquote><div><br /></div><div><br /></div><div>-- <br />Regards,<br />Denis Golovan</div><div><br /></div></div>