daiyousei-qz marked 5 inline comments as done.
daiyousei-qz added a comment.

I have also moved the expansion out of the location checking branch. I think 
it's to find out if a macro actually has a definition which isn't always the 
case especially for special macros like `__FILE__`.

Here's the current presentation.
F23848502: image.png <https://reviews.llvm.org/F23848502>

F23848497: image.png <https://reviews.llvm.org/F23848497>

F23848508: image.png <https://reviews.llvm.org/F23848508>



================
Comment at: clang-tools-extra/clangd/unittests/HoverTests.cpp:490
+         HI.Definition = "#define MACRO 41";
+         HI.MacroExpansion = "41";
+       }},
----------------
sammccall wrote:
> this is redundant with the definition, ideally I think we'd omit one (the 
> output is pretty heavyweight).
> 
> It's *almost* correct to omit the expansion for object-like macros, the 
> problem with this is:
> ```
> #define INDIRECT DOUBLE(y)
> #define DOUBLE(X) X##X
> int INDIRECT; // we *should* show expansion here
> ```
> 
> Still, this is probably rare enough that it's better to not show expansions 
> for object-like macros on balance?
> 
> (It would be possible to actually check for nested expansions but I doubt 
> it's worth the complexity, certainly not in this patch)
I suppose if we don't have good way to detect nested object-like macro, just 
leave both definition and expansion is a better idea since people could simply 
ignore the redundant part. Though I don't have a strong opinion on this and 
could change that if you really want.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D127082

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

Reply via email to