From: Douglas Gregor Date: Tue, 22 Sep 2009 21:42:17 +0000 (+0000) Subject: Teach code-completion to introduce a ", ..." placeholder for variadic functions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b3d4525c65cf456d3f1f4338afdcac83afc7be02;p=clang Teach code-completion to introduce a ", ..." placeholder for variadic functions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82577 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index cfec7b2374..b19fda216d 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -657,6 +657,11 @@ static void AddFunctionParameterChunks(ASTContext &Context, // Add the placeholder string. CCStr->AddPlaceholderChunk(PlaceholderStr.c_str()); } + + if (const FunctionProtoType *Proto + = Function->getType()->getAs()) + if (Proto->isVariadic()) + CCStr->AddPlaceholderChunk(", ..."); } /// \brief Add template parameter chunks to the given code completion string. diff --git a/test/CodeCompletion/functions.cpp b/test/CodeCompletion/functions.cpp index f04ef01d70..2e1bc6edf8 100644 --- a/test/CodeCompletion/functions.cpp +++ b/test/CodeCompletion/functions.cpp @@ -1,9 +1,9 @@ void f(int i, int j = 2, int k = 5); -void f(float x, float y); +void f(float x, float y...); void test() { :: // RUN: clang-cc -fsyntax-only -code-completion-at=%s:5:5 %s -o - | FileCheck -check-prefix=CC1 %s && // CHECK-CC1: f(<#int i#>{#, <#int j#>{#, <#int k#>#}#}) - // CHECK-CC1: f(<#float x#>, <#float y#>) + // CHECK-CC1: f(<#float x#>, <#float y#><#, ...#>) // RUN: true