[PATCH] D66696: [ObjC generics] Fix not inheriting type bounds in categories/extensions.

Volodymyr Sapsai via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 13 17:54:52 PDT 2019


vsapsai added a comment.

In D66696#1663856 <https://reviews.llvm.org/D66696#1663856>, @erik.pilkington wrote:

> I'm a bit curious about clients that use `getCanonicalType()` to get a full desugaring, instead of doing a single step. It seems like they'd still get the out of date type parameter type. Has that ever worked?


Good point. I believe it never worked but don't have specific examples. Suspect that we haven't seen such problems because `ObjCTypeParamType` has limited usage before it is substituted with a concrete type.

While checking the code I've noticed we can make a small cleanup - in

  QualType getObjCTypeParamType(const ObjCTypeParamDecl *Decl,
                                ArrayRef<ObjCProtocolDecl *> protocols,
                                QualType Canonical = QualType()) const;

remove the parameter `Canonical` because no caller provides it and it's not the best idea to allow to provide `Canonical` type that can be inconsistent with `ObjCTypeParamDecl` type. Plan to do the cleanup in a separate commit.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66696/new/

https://reviews.llvm.org/D66696





More information about the cfe-commits mailing list