]> granicus.if.org Git - clang/commit
[CodeComplete] Clearly distinguish signature help and code completion.
authorIlya Biryukov <ibiryukov@google.com>
Fri, 7 Sep 2018 14:04:39 +0000 (14:04 +0000)
committerIlya Biryukov <ibiryukov@google.com>
Fri, 7 Sep 2018 14:04:39 +0000 (14:04 +0000)
commit96b8b58101fe5e5532648db63bd90f5d56c5bea8
tree3a907c265c8fc628af2cea4985cba269f17298bf
parent4e24bae3a87ad427403ec1ecb539a42e2eb8a351
[CodeComplete] Clearly distinguish signature help and code completion.

Summary:
Code completion in clang is actually a mix of two features:
- Code completion is a familiar feature. Results are exposed via the
  CodeCompleteConsumer::ProcessCodeCompleteResults callback.
- Signature help figures out if the current expression is an argument of
  some function call and shows corresponding signatures if so.
  Results are exposed via CodeCompleteConsumer::ProcessOverloadCandidates.

This patch refactors the implementation to untangle those two from each
other and makes some naming tweaks to avoid confusion when reading the
code.

The refactoring is required for signature help fixes, see D51038.

The only intended behavior change is the order of callbacks.
ProcessOverloadCandidates is now called before ProcessCodeCompleteResults.

Reviewers: sammccall, kadircet

Reviewed By: sammccall

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D51782

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@341660 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Sema/Sema.h
lib/Parse/ParseDecl.cpp
lib/Parse/ParseExpr.cpp
lib/Parse/ParseExprCXX.cpp
lib/Parse/ParseOpenMP.cpp
lib/Sema/SemaCodeComplete.cpp
test/CodeCompletion/call.cpp