[PATCH] D75574: RFC: Implement objc_direct_protocol attribute to remove protocol metadata

Nathan Lanza via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 7 15:09:42 PST 2020


lanza marked an inline comment as done.
lanza added a comment.

> Adding some more knowledgeable reviewers for comments on your RFC. I pointed out a few minor nits, but I'll hold off on a technical review until the ObjC-specific details are worked out and there is buy-in on the feature.

Thanks!

> This should be implemented via a custom LangOpt in Attr.td

This was done to more-or-less mirror the behavior from `objc_direct`. Though if people think the implementations should differ I'm cool with that.

In D75574#1911368 <https://reviews.llvm.org/D75574#1911368>, @rjmccall wrote:

> I'm fine with people developing a proposal for this openly, but it needs to be said that language changes cannot just be made in open-source; they have to go through the official language review process, which for Objective-C is an internal committee within Apple.


Yea sure, whatever the correct process is I'm more than happy to cooperate. I was going to post something on the mailing list some time this week, but this diff got attention early! What would be the best way to start that conversation?

> The summary calls this `objc_direct_protocol`, but it's `objc_static_protocol` in the patch.  I agree that "direct" isn't a great name for this.  `static` is complicated, because while we use "static" vs. "dynamic" this way when we're talking *about* languages, I'm not sure any of the umpteen language uses of `static` ever use it in exactly this way, and it's possibly quite confusing to add one.  Throwing  out other names here: `objc_non_runtime_protocol`? `objc_compiler_only_protocol`?

Yea, the naming I'm not too happy about and changed it around a few times. Your proposed naming is certainly more clear.

> The technical content of the patch seems fine.

👍



================
Comment at: clang/include/clang/AST/DeclObjC.h:2197
 
+  /// True if the protocol is tagged as objc_static_protocol
+  bool isStaticProtocol() const;
----------------
aaron.ballman wrote:
> Comments should be properly punctuated (missing a full stop at the end of the sentence), here and elsewhere.
👍


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D75574





More information about the cfe-commits mailing list