hokein added a comment.

Thanks for the comments!


================
Comment at: clangd/SourceCode.cpp:55
+  const auto& SM = D->getASTContext().getSourceManager();
+  SourceLocation SpellingLoc = SM.getSpellingLoc(D->getLocation());
+  if (D->getLocation().isMacroID()) {
----------------
sammccall wrote:
> As discussed offline, this heuristic is... limited.
> 
> ```#define X Y
> class X{}```
> 
> and now we say the definition of the class Y is on the first line.
> 
> I think we should really be basing the heuristics on the whole definition 
> range, even if we're then going to return just the position of the name.
> 
> This patch just moves logic around so we don't need to do it now, but it 
> could use a FIXME
Thanks for pointing it out! Added a FIXME. 


================
Comment at: clangd/SourceCode.h:34
 
+/// Get the source location of the given D.
+///
----------------
sammccall wrote:
> This is a useful function, but it doesn't belong in SourceCode with its 
> current scope. See the file header :)
> 
> We could add an "AST.h" or similar file, or expand the scope of SourceCode, 
> but we haven't needed to yet because clang/AST normally has what we need.
> 
> Can this be a method on NamedDecl or a function alongside?
> But since (later comment) the logic seems wrong, I'm not sure it makes sense 
> to move it at the moment. Maybe create a separate header?
Created a separate file. 


================
Comment at: clangd/SourceCode.h:39
+///  * use spelling location, otherwise.
+SourceLocation getDeclSourceLoc(const clang::Decl* D);
+
----------------
sammccall wrote:
> sammccall wrote:
> > This name seems opaque to me.
> > 
> > findName?
> would it be more useful to return the range, and just pick out the start if 
> you're not interested in both?
Since this function only returns name location, a source location is enough IMO.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D44247



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

Reply via email to