ahatanak added a comment.

In D151523#4374808 <https://reviews.llvm.org/D151523#4374808>, @vsapsai wrote:

> Kinda a follow-up to D121176 <https://reviews.llvm.org/D121176>.
>
> One big alternative that I've considered is to store interface name in 
> `ObjCCategoryDecl` because when we parse `@interface 
> InterfaceName(CategoryName)` we know the interface name. The intention was to 
> allow
>
>   @interface A(X) @end
>
> and
>
>   @interface A @end
>   @interface A(X) @end
>
> as equivalent. But I'm not convinced it is the right call and that's why it 
> doesn't justify the extra effort.

Are there any cases you are aware of where this change would fix a bug? In any 
case, it sounds like that is something that can be done as a follow-up patch 
after fixing the crash.



================
Comment at: clang/lib/AST/ASTStructuralEquivalence.cpp:2062
+                          *Intf2 = D2->getClassInterface();
+  if ((Intf1 != nullptr) != (Intf2 != nullptr))
+    return false;
----------------
vsapsai wrote:
> shafik wrote:
> > I think this would be easier to read if you checked `Intf1 != Intf2` and 
> > then checked for `nullptr`
> I am totally up to the style that is more readable and consistent. I was just 
> trying to mimic the check for `Template1` and `Template2`. I agree that 1 
> (**one**) datapoint isn't representative, so I can check this file more 
> thoroughly for the prevalent style. Do you have any other places in mind that 
> are worth checking? I'll look for something more representative but it would 
> help if you have something in mind already.
`!Intf1 != !Intf2` should work too.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151523

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to