kbobyrev added inline comments.

================
Comment at: clang-tools-extra/clangd/index/Ref.h:32
+  //
+  // class Foo {};
+  //       ^ Foo declaration
----------------
hokein wrote:
>  could you confirm with it? this looks like a `Foo` class definition.
Good point, I thought it should be both.


================
Comment at: clang-tools-extra/clangd/index/Ref.h:108
   using iterator = const_iterator;
+  using size_type = size_t;
 
----------------
hokein wrote:
> nit: I don't understand why we need this change? it seems irrelevant to the 
> patch. 
This one is required for `SizeIs` matcher, but I believe I could use 
`UnorderedAre` instead (to make sure there are no extra references).


================
Comment at: clang-tools-extra/clangd/index/SymbolCollector.cpp:191
+    Result |= RefKind::Reference;
+  if (!(Roles & static_cast<unsigned>(index::SymbolRole::Implicit)))
+    Result |= RefKind::Spelled;
----------------
hokein wrote:
> I was confused at the first time reading the code -- it turns out we reset 
> the flag in the caller. 
> 
> Maybe adjust the function like `RefKind toRefKind(index::SymbolRoleSet Roles, 
> bool isSpelled)`?
If my understanding is correct, the suggestion is to take `isSpelled` argument 
and apply the `RefKind` flag based on the value of the argument instead of 
using `SymbolRole::Implicit`. Is that right? In this case I would be concerned 
about doing because that increase the amount of code in case there is any other 
index provider that sets the flags itself. 

What do you think?


================
Comment at: clang/include/clang/Tooling/Syntax/Tokens.h:324
 llvm::ArrayRef<syntax::Token>
 spelledTokensTouching(SourceLocation Loc, const syntax::TokenBuffer &Tokens);
 
----------------
hokein wrote:
> nit: I would make this function come immediately after the above one (without 
> a blank line) to avoid the duplicated documentations, e.g.
> 
> ```
> /// The spelled tokens that overlap or touch a spelling location Loc.
> /// This always returns 0-2 tokens.
> llvm::ArrayRef<syntax::Token>
> spelledTokensTouching(SourceLocation Loc, llvm::ArrayRef<syntax::Token> 
> Tokens);
> llvm::ArrayRef<syntax::Token>
> spelledTokensTouching(SourceLocation Loc, const syntax::TokenBuffer &Tokens);
> ```
> 
> the same below.
Makes sense. I was concerned about Doxygen not generating comments for both of 
these functions, but I think it should be OK.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72746



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

Reply via email to