ilya-biryukov added inline comments.
================ Comment at: clang/lib/Index/IndexSymbol.cpp:99 + if (auto *VT = dyn_cast<VarTemplateDecl>(D)) { + Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic; ---------------- kadircet wrote: > ilya-biryukov wrote: > > kadircet wrote: > > > what about function and class templates? Are they handled in somewhere > > > else? > > Yeah, they're handled in ifs and a large switch below. I tried unifying > > those cases (matching a `TemplateDecl` here instead of `VarTemplateDecl`), > > but they start producing different results for template classes and this > > function is **mostly** not called for templates from withing the index > > library (only for the underlying declarations) and it's only clangd that > > cares about the returned value in that case. > > > > So I decided to make a minimal change that fixes clangd, but does not > > change behavior of the index library to avoid potential fallout of a more > > general fix. > ok then it makes sense, could you also add a test case for one of the > fall-through cases(static member/parameter(?) etc.)? Done. (Only static member, though, since we can't have templated parameters or non-static fields) Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62579/new/ https://reviews.llvm.org/D62579 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits