================
@@ -2838,6 +2838,18 @@ class alignas(TypeAlignment) Type : public 
ExtQualsTypeCommonBase {
   /// immediately following this class.
   template <typename T> const T *getAs() const;
 
+  /// Look through sugar for an instance of TemplateSpecializationType which
+  /// is not a type alias.
+  const TemplateSpecializationType *
+  getAsNonAliasTemplateSpecializationType() const;
+
+  const TemplateSpecializationType *
+  castAsNonAliasTemplateSpecializationType() const {
+    auto TST = getAsNonAliasTemplateSpecializationType();
----------------
erichkeane wrote:

Yep, I think I'm just kind of complaining about the names :)  But I think it 
makes reasonable sense in this form, though I'd probably insist on a better 
descriptive comment on them to make it clear what is happening.

Typically, we are 'trying' to get rid of the non-template `getAs`/`castAs` 
functions and change them to specializations, but we sorta stopped on that 
(just due to effort).  So naming two new ones like that that we would want to 
KEEP is going backwards.

https://github.com/llvm/llvm-project/pull/135916
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to