Hi all, The following series contain a few miscellaneous updates to generic lambdas and implicit function templates.
[1/4]: Use translation-unit-global rather than parameter-list-local counter for generic type names to facilitate nested implicit function templates. Using function-local counter means that nested generic lambdas generate duplicate (conflicting) template type parameters. [2/4]: Support nested generic lambdas. Bug fix; remove assertion not applicable to generic lambdas. [3/4]: Ensure implicit template parameters have distinct canonical types. Unsure on my solution here. I tinkered with externalizing 'canonical_type_parameter' from pt.c but was not sure whether it was necessary. It seemed sufficient to simply make TYPE_CANONICAL be distinct for each parameter so I simply made it point to the generate template parameter type. [4/4]: Generate more intuitive name for 'auto' parameters. Potentially contentious. This makes the names generated for implicit template parameter types to be of the form '<autoN>' rather than '__GenN'. The former, IMHO, look better in diagnostics. A better solution might be to make the transformation in the diagnostic code rather than relabel the type but this appears to work in my simplistic test cases. On the subject of test cases; I'm trying to put together a set to test all features of the generic lambda and implicit function template updates. This is taking longer than I'd hoped as I'm only getting a few minutes here and there to spend on this at the moment. Cheers, Adam gcc/cp/lambda.c | 2 +- gcc/cp/parser.c | 30 ++++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) -- 1.8.4