VitaNuo added a comment.

Thanks for the review!



================
Comment at: clang-tools-extra/clangd/Hover.cpp:663
+  const auto *Var = dyn_cast<VarDecl>(D);
+  if (Var && !llvm::isa<ParmVarDecl>(Var)) {
     if (const Expr *Init = Var->getInit())
----------------
hokein wrote:
> We're ignoring all `ParmVarDecl` cases, 
> 
> The crash here is for broken code. For the crash case, the AST node looks 
> like 
> 
> ```
> `-ParmVarDecl 0x563b7cc853c0 <col:10, col:20> col:14 invalid param 
> 'Foo':'Foo' cinit
>     `-OpaqueValueExpr 0x563b7cc854a0 <col:20> 'Foo':'Foo'
> ```
> 
> One alternative is to exclude invalid `VarDecl`, then the Hover feature still 
> keep working on valid `ParmVarDecl`.
> 
> ```
> if (const auto* Var = dyn_cast<VarDecl>(D); Var && !Var->isInvalidDecl()) {
>    ...
> }
> ```
Why would you do that?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D153015

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

Reply via email to