diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-10-18 21:34:55 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-10-18 21:34:55 +0000 |
commit | 643c330b914e9c6045138faa3eef10a830a94aab (patch) | |
tree | a63773eee1d773eafbcf3178027b693ca0abf9b5 /clang | |
parent | eae048885d3a925c7c52602d830c59e9b14253d3 (diff) | |
download | bcm5719-llvm-643c330b914e9c6045138faa3eef10a830a94aab.tar.gz bcm5719-llvm-643c330b914e9c6045138faa3eef10a830a94aab.zip |
Provide code completion for types after the '^' that starts a block
literal.
llvm-svn: 116754
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 5 | ||||
-rw-r--r-- | clang/test/Index/complete-blocks.m | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index 2785f1b14da..c4d09f2816f 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -1743,6 +1743,11 @@ bool Parser::ParseExpressionList(llvm::SmallVectorImpl<Expr*> &Exprs, /// [clang] specifier-qualifier-list block-declarator /// void Parser::ParseBlockId() { + if (Tok.is(tok::code_completion)) { + Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Type); + ConsumeCodeCompletionToken(); + } + // Parse the specifier-qualifier-list piece. DeclSpec DS; ParseSpecifierQualifierList(DS); diff --git a/clang/test/Index/complete-blocks.m b/clang/test/Index/complete-blocks.m index 61e363e3752..18369d2c5a4 100644 --- a/clang/test/Index/complete-blocks.m +++ b/clang/test/Index/complete-blocks.m @@ -43,3 +43,9 @@ void test_C(C *c) { // CHECK-CC3: ObjCInstanceMethodDecl:{ResultType id}{TypedText method3:}{Placeholder ^int(void)b} (20) // RUN: c-index-test -code-completion-at=%s:33:6 %s | FileCheck -check-prefix=CHECK-CC4 %s // CHECK-CC4: ObjCInstanceMethodDecl:{ResultType id}{TypedText method4:}{Placeholder ^(void)arg} (20) +// RUN: c-index-test -code-completion-at=%s:25:15 %s | FileCheck -check-prefix=CHECK-CC5 %s +// CHECK-CC5: TypedefDecl:{TypedText block_t} (50) +// CHECK-CC5: TypedefDecl:{TypedText Class} (50) +// CHECK-CC5-NOT: test_A +// CHECK-CC5: {TypedText union} (50) + |