rsmith added inline comments.

================
Comment at: clang/lib/Sema/SemaDecl.cpp:4394
+        isa<EnumDecl>(D))
+      continue;
+
----------------
rjmccall wrote:
> This is essentially part of the next paragraph.
> 
> I believe `friend` declarations also do not declare "members", under the same 
> logic allowing `static_assert`.
I think you're right, but that's a defect in the wording -- a friend 
definition, at least, could use the class in a way that requires a linkage 
calculation, and the design intent as approved by the Evolution Working Group 
did not permit friend declarations. I'll take this back to the committee for 
some rewording, but I think it makes sense to proceed under the assumption that 
friends won't be allowed. In any case, I'm updating the diagnostic to treat 
friends as a special case, since they're not member declarations.


================
Comment at: clang/lib/Sema/SemaDecl.cpp:4404
+    if (MemberRD->isLambda())
+      return {NonCLikeKind::Lambda, MemberRD->getSourceRange()};
+
----------------
rjmccall wrote:
> Do lambdas in nested expressions really get added to the class's decls list?  
> I wouldn't have expected that, but it definitely makes this check a lot 
> easier.
They end up in some enclosing `DeclContext`, which is either the class itself 
or something else that we also disallow.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74103



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

Reply via email to