jyknight added a comment. In D67983#1863019 <https://reviews.llvm.org/D67983#1863019>, @arphaman wrote:
> @jyknight @rjmccall I'm not sure this change is 100% fine. For example, the > following code no longer compiles with ARC: > > @protocol Delegate > @end > > @interface X <Delegate> > > @end > > @interface Y > @property id<Delegate> d; > @end > > @implementation X > > + (void)foo:(Y *)y with:(X*)x { > y.d = self; // error: assigning to 'id<Delegate>' from incompatible type > 'const Class' > y.d = x; // fine > } > > @end > Your error looks correct to me -- "self" in a classmethod is not an instance, but the class itself. And while instances of X implement "Delegate", the Class does not. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D67983/new/ https://reviews.llvm.org/D67983 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits