jansvoboda11 added inline comments.

================
Comment at: clang/include/clang/Sema/Sema.h:3300
 
-  Decl *ActOnObjCContainerStartDefinition(Decl *IDecl);
+  void ActOnObjCContainerStartDefinition(ObjCContainerDecl *IDecl);
 
----------------
vsapsai wrote:
> jansvoboda11 wrote:
> > Why the change in return type?
> Initially I've changed the type to catch various `return 
> ActOnObjCContainerStartDefinition..` Now it's not really required.
> 
> What type do you think it should be? We can do both `Decl *` and 
> `ObjCContainerDecl *` though none of those is particularly useful. I've 
> decided to keep `void` because we don't use the returned value anyway.
> 
> I was also considering
> ```lang=c++
> template <typename ObjCDeclTy>
> ObjCDeclTy *ActOnObjCContainerStartDefinition(ObjCDeclTy *IDecl);
> ```
> 
> but I feel like the introduced complexity isn't worth it.
I see. I'm fine with having `void` here, what caught my attention was changing 
`return ActOnObjCContainerStartDefinition(X);` into 
`ActOnObjCContainerStartDefinition(X); return X;` that's perfectly fine though.


================
Comment at: clang/lib/Sema/SemaDecl.cpp:17067
+void Sema::ActOnObjCTemporaryExitContainerContext(ObjCContainerDecl *ObjCCtx) {
+  auto DC = cast<DeclContext>(ObjCCtx);
   assert(DC == CurContext && "Mismatch of container contexts");
----------------
vsapsai wrote:
> jansvoboda11 wrote:
> > Why the cast? We should be able to compare/assign `ObjCContainerDecl *` to 
> > `DeclContext *`.
> I believe you are right and the cast is not required. Though we cannot 
> compare `ObjCCtx` and `CurContext`, we need to compare `DeclContext *DC`.
> 
> Also dropped a similar cast in `ActOnObjCContainerStartDefinition`.
Interesting, I would expect that `ObjCCtx == CurContext` would have implicit 
upcast of `ObjCCtx` to `DeclContext *`. Same for the assignment.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D124285

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

Reply via email to