vsapsai added a comment.

There should be no error for `blockWithParam = genericBlockWithParam;` because 
`blockWithParam` is called with `I *` and it is safe to substitute 
`genericBlockWithParam`. Basically you have

  I *blockArg;
  id<P> genericParam = blockArg;

And for `genericBlockWithParam = blockWithParam;` you have

  id<P> blockArg;
  I *blockParam = blockArg;
  // Or as a concrete example
  // id<NSCopying> blockArg_thatHappensToBeNumber = @42;
  // NSString *blockParam = blockArg_thatHappensToBeNumber;

It is not safe to make such assignments, that's why there is an error now.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D66831



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D66831: [ObjC] Fi... ChatWyn via Phabricator via cfe-commits
    • [PATCH] D66831: [Obj... Volodymyr Sapsai via Phabricator via cfe-commits

Reply via email to