From: Douglas Gregor Date: Tue, 6 Apr 2010 20:19:47 +0000 (+0000) Subject: When code completion produces an overload set as its results (e.g., X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2e4c7a5865739709a310d847da34096aa402d183;p=clang When code completion produces an overload set as its results (e.g., while we're completing in the middle of a function call), also produce "ordinary" name results that show what can be typed at that point. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100558 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index ced2e78c08..beed0ed2b6 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -2260,9 +2260,8 @@ void Sema::CodeCompleteCall(Scope *S, ExprTy *FnIn, } } - if (Results.empty()) - CodeCompleteOrdinaryName(S, CCC_Expression); - else + CodeCompleteOrdinaryName(S, CCC_Expression); + if (!Results.empty()) CodeCompleter->ProcessOverloadCandidates(*this, NumArgs, Results.data(), Results.size()); } diff --git a/test/CodeCompletion/call.cpp b/test/CodeCompletion/call.cpp index 04d2a2f0c9..1df958ed2c 100644 --- a/test/CodeCompletion/call.cpp +++ b/test/CodeCompletion/call.cpp @@ -18,6 +18,7 @@ void f(); void test() { f(Y(), 0, 0); // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:19:9 %s -o - | FileCheck -check-prefix=CC1 %s + // CHECK-CC1: COMPLETION: Pattern : dynamic_cast<<#type-id#>>(<#expression#>) // CHECK-CC1: f(N::Y y, <#int ZZ#>) // CHECK-CC1-NEXT: f(int i, <#int j#>, int k) // CHECK-CC1-NEXT: f(float x, <#float y#>)