[PATCH] D124373: [clang] add parameter pack/pack expansion matchers
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 27 12:43:20 PDT 2022
aaron.ballman added a comment.
In D124373#3477996 <https://reviews.llvm.org/D124373#3477996>, @upsj wrote:
> This is part of my long-term goal to add support for forwarding parameters and documentation for make_unique-like functions to clangd. To be fair, the details are not entirely fleshed out - for inlay hints (displaying parameter names inline), the entire function template is already available in an instantiated form, so I can work with existing matchers. For signature help (displaying which parameters are available, which one is active while typing), IIRC you only have the template instantiation pattern available, so I need to find the necessary parts of the AST myself.
Ah, thank you for the background information!
> My thought was to try and move towards this goal in small steps, but if this is an important build time/size consideration, I can also see whether both of them are actually necessary (I suspect isParameterPack might not be) before moving forward?
We support locally defined matchers so that you can still use all the AST matching awesomeness, but without increasing the compile times for everyone for one-off matchers. e.g,., https://github.com/llvm/llvm-project/blob/c874dd53628db8170d4c5ba3878817abc385a695/clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp#L23 My recommendation is to do something similar for clangd, but once we find a second use for the matcher, we can go ahead and hoist it into ASTMatchers.h at that point. WDYT?
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the cfe-commits