sammccall marked 4 inline comments as done. sammccall added inline comments.
================ Comment at: clang-tools-extra/clangd/AST.cpp:572 +#define TEMPLATE_TYPE(SomeTemplateDecl) \ + if (auto *STD = llvm::dyn_cast<SomeTemplateDecl>(TD)) { \ + for (auto *Spec : STD->specializations()) { \ ---------------- nridge wrote: > Is it possible to extract this into a helper function template? > > I'm not a huge fan of using macros like this, as the macro definition is > harder to read (e.g. its tokens don't get semantic highlighting) and edit > (e.g. completion). Oops, of course. ================ Comment at: clang-tools-extra/clangd/AST.h:136 +// FIXME: handle more type patterns. +llvm::Optional<TemplateTypeParmTypeLoc> getContainedAutoParamType(TypeLoc TL); + ---------------- nridge wrote: > Why `Optional` if `TypeLoc` can represent a null type loc? It was to match getContainedAutoParamType, which I guess wanted to be explicit about the fact that we may not find one. But this isn't common, so I've dropped it. ================ Comment at: clang-tools-extra/clangd/InlayHints.cpp:323 + "Instantiated function has fewer (non-pack) parameters?"); + return InstantiatedFunction->getParamDecl(ParamIdx); + } ---------------- nridge wrote: > Here's a test case which slips past these checks: > > ``` > int waldo(auto... args, auto last); > int x = waldo<int, float>(1, 2.0, 'x'); > ``` > > `last` incorrectly gets `float` (rather than `char`) as a hint Ah, good catch! For some reason I had it in my head that a pack had to be at the end. (It can't be deduced though? Weird...) I made this give up hinting once we see a pack. Added that test. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D120258/new/ https://reviews.llvm.org/D120258 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits