doug.gregor added inline comments. ================ Comment at: include/clang/AST/RecursiveASTVisitor.h:1037 @@ -1036,1 +1036,3 @@ +DEF_TRAVERSE_TYPE(ObjCTypeParamType, {}) + ---------------- manmanren wrote: > doug.gregor wrote: > > I'm sorta shocked that we don't visit the protocol qualifiers here, but I > > guess we haven't been doing that for ObjCObjectType all along. Weird. > Right below, we don't visit the protocol qualifiers for ObjCObjectType :] > If you think we should, I can patch it up for both types. Yes, I think we should.
================ Comment at: include/clang/AST/Type.h:4786 @@ +4785,3 @@ + bool isSugared() const { return false; } + QualType desugar() const { return QualType(this, 0); } + ---------------- manmanren wrote: > doug.gregor wrote: > > This is an interesting choice. Objective-C type parameters were treated > > like typedefs before, so they always act like their underlying type (e.g., > > because they are typedef name declarations). Why isn't ObjCTypeParamType > > sugar for the underlying type of the type parameter (I.e., the bound) w/ > > the protocol qualifiers? > Are you suggesting to canonicalize ObjCTypeParamType to the underlying type > with the protocol qualifiers as well? Or just desugaring? > > I think I have tried to set ObjCTypeParamType as NON_CANONICAL_TYPE in > TypeNodes.def, but had some issues. Canonicalize to the underlying type + protocol qualifiers. We don't need the desugaring part. https://reviews.llvm.org/D23079 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits