kadircet accepted this revision.
kadircet marked an inline comment as done.
kadircet added a comment.
This revision is now accepted and ready to land.

thanks! LGTM with some minor comments.

let me know if you don't have commit access so that i can land this for you.



================
Comment at: clang-tools-extra/clangd/Hover.cpp:680
 
+StringRef getAccessString(AccessSpecifier AS) {
+  switch (AS) {
----------------
danielmartin wrote:
> kadircet wrote:
> > it is annoying to have this function duplicated in each component (there 
> > are duplicates at least in text and json node dumpers too) :/
> > 
> > Feel free to provide a common implementation in 
> > `clang/include/clang/Basic/Specifiers.h` and migrate all other usages to 
> > it, or just put a FIXME in here saying we should converge those.
> > 
> > nit: prefer `llvm::StringRef` as return type
> I've only found usages in clang-doc, I don't know if there's more. 
> 
> I've changed them to use the new common logic in `Specifiers.h`.
there's also some in 
https://github.com/llvm/llvm-project/blob/master/clang/lib/AST/DeclPrinter.cpp#L291
- 
https://github.com/llvm/llvm-project/blob/master/clang/lib/AST/DeclPrinter.cpp#L997
- 
https://github.com/llvm/llvm-project/blob/master/clang/lib/AST/DeclPrinter.cpp#L432
- 
https://github.com/llvm/llvm-project/blob/master/clang/include/clang/AST/JSONNodeDumper.h#L163
- 
https://github.com/llvm/llvm-project/blob/master/clang/include/clang/AST/TextNodeDumper.h#L186


================
Comment at: clang-tools-extra/clangd/Hover.cpp:471
 
-  HI.AccessSpecifier = D->getAccess();
+  HI.AccessSpecifier = std::string(getAccess(D->getAccess()));
   HI.NamespaceScope = getNamespaceScope(D);
----------------
nit: you can do `getAccess(D->getAccess()).str()` (same for other places as 
well)


================
Comment at: clang-tools-extra/clangd/unittests/HoverTests.cpp:616
          HI.Type = "typename";
+         HI.AccessSpecifier = "public";
        }},
----------------
this is surprising, but looks like sema always instantiates template parameters 
with public access specifiers explicitly.

no action needed, just leaving out comments in case we want to act on it in the 
future.


================
Comment at: clang/include/clang/Basic/Specifiers.h:369
+
+  inline llvm::StringRef getAccess(AccessSpecifier AS) {
+    switch (AS) {
----------------
`getAccessSpelling` instead of `getAccess`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D80472



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

Reply via email to