[all-commits] [llvm/llvm-project] a6308c: When performing a substitution into a dependent al...

Richard Smith via All-commits all-commits at lists.llvm.org
Tue Jun 23 14:44:03 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a6308c0ad954a08645d9abf0a5e77dc488b8ca28
      https://github.com/llvm/llvm-project/commit/a6308c0ad954a08645d9abf0a5e77dc488b8ca28
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2020-06-23 (Tue, 23 Jun 2020)

  Changed paths:
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/AST/ast-dump-openmp-begin-declare-variant_template_1.cpp
    M clang/test/SemaTemplate/alias-templates.cpp
    M clang/test/SemaTemplate/deduction-guide.cpp
    M clang/unittests/AST/ASTTraverserTest.cpp

  Log Message:
  -----------
  When performing a substitution into a dependent alias template, mark the
outer levels as retained rather than omitting their arguments.

This better reflects what's going on (we're performing a substitution
while still inside a template), and in theory is more correct, but I've
not found a testcase where it matters in practice (largely because we
don't allow alias templates to be declared inside a function).

Fixed AST dumping of SubstNonTypeTemplateParm[Pack]Expr to demonstrate
that we're properly substituting through dependent alias templates. (We
can't deduce properly through these yet, but we can at least produce the
right input to template argument deduction.)

No functionality change intended.




More information about the All-commits mailing list