On Apr 16, 2018, Jason Merrill <ja...@redhat.com> wrote: > This change looks good. One other nit: get_decl_maybe can also return a > list, so the name seems wrong.
Uhh, it's "give me the decl if you got one, but it's ok if you give me a list" (the latter is what makes it _maybe). It replaces what used to be called just 'decl'. Maybe wrong is a bit too strong, but... do you have any suggestion? get_decl_or_tree_list_but_dont_build_the_list is a bit too long IMHO ;-) > And this line > + if (obj->list_p () && obj->get_decl_maybe ()) > could be > if (tree_list_p ()) It could if we made tree_list_p public. It's private because that's an internal implementation detail, though it's one that happens to leak through the combination of calls above. > I think, and then get_decl_maybe wouldn't need to return a list anymore? That's backwards. It doesn't need to; the point of get_decl_maybe is to make as simple a test as possible and return fast, without having to look in the "decl" to find out what it is. I even considered making it return tldcl unconditionally, but that would just cause trouble for the various pieces of code that used to compare tinst_level::decls for equality, and would now get false positives out of split lists sharing the same tmpl decl in the first element of the list. Testing targs in get_decl_maybe to avoid returning a partial former decl rules out this case and is as cheap as it gets. Do we need more detailed comments, besides a name change? -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer