rsmith accepted this revision. rsmith added a comment. This revision is now accepted and ready to land.
Awesome! ================ Comment at: clang/lib/Sema/SemaTemplateDeduction.cpp:559 + // Get the resolved template arguments from the canonical type. + // FIXME: Handle the as-written arguments so the sugar is not lost. + ArrayRef<TemplateArgument> PResolved = ---------------- Does this matter on the `P` side? (Can we remove this FIXME?) ================ Comment at: clang/lib/Sema/SemaTemplateDeduction.cpp:561 + ArrayRef<TemplateArgument> PResolved = + TP->getCanonicalTypeInternal() + ->castAs<TemplateSpecializationType>() ---------------- Can we avoid using the `Internal` version here? (The only difference is whether we preserve top-level qualifiers that are outside any type sugar.) Might also be worth a comment here explaining that we're going to the canonical type first here to step over any alias templates. ================ Comment at: clang/lib/Sema/SemaTemplateDeduction.cpp:571-573 + // FIXME: Should not lose sugar here. + if (const auto *SA = dyn_cast<TemplateSpecializationType>( + UA->getCanonicalTypeInternal())) { ---------------- I think we can retain type sugar here without too much effort. ================ Comment at: clang/lib/Sema/SemaTemplateDeduction.cpp:573 + if (const auto *SA = dyn_cast<TemplateSpecializationType>( + UA->getCanonicalTypeInternal())) { // Perform template argument deduction for the template name. ---------------- Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D110216/new/ https://reviews.llvm.org/D110216 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits