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

Reply via email to