diff options
author | Sam McCall <sam.mccall@gmail.com> | 2020-01-29 19:11:21 +0100 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2020-03-31 18:43:24 +0200 |
commit | a76e68c9704fb5b3faf25bb8d51e405b5310ff08 (patch) | |
tree | 739cb8886ac3e8773794fd0e35bf62d96bb5336c /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 41c135d6d2882ee6592a1c51a0221ef6def79ee4 (diff) | |
download | llvm-a76e68c9704fb5b3faf25bb8d51e405b5310ff08.zip llvm-a76e68c9704fb5b3faf25bb8d51e405b5310ff08.tar.gz llvm-a76e68c9704fb5b3faf25bb8d51e405b5310ff08.tar.bz2 |
[CodeComplete] Member completion for concept-constrained types.
Summary:
The basic idea is to walk through the concept definition, looking for
t.foo() where t has the constrained type.
In this patch:
- nested types are recognized and offered after ::
- variable/function members are recognized and offered after the correct
dot/arrow/colon trigger
- member functions are recognized (anything directly called). parameter
types are presumed to be the argument types. parameters are unnamed.
- result types are available when a requirement has a type constraint.
These are printed as constraints, except same_as<T> which prints as T.
Not in this patch:
- support for merging/overloading when two locations describe the same member.
The last one wins, for any given name. This is probably important...
- support for nested template members (T::x<int>)
- support for completing members of (instantiations of) template template parameters
Reviewers: nridge, saar.raz
Subscribers: mgrang, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73649
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions