diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-09-21 16:06:22 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-09-21 16:06:22 +0000 |
commit | 0212fd7169086a36df5a9bed0f5986a92eb9ba12 (patch) | |
tree | 9f319fec50cb717f4693baacbe251ca97c426792 /clang/lib/Sema/CodeCompleteConsumer.cpp | |
parent | 4c88c9803ffeb5c288d0165da1d05b8c2adf17a7 (diff) | |
download | llvm-0212fd7169086a36df5a9bed0f5986a92eb9ba12.zip llvm-0212fd7169086a36df5a9bed0f5986a92eb9ba12.tar.gz llvm-0212fd7169086a36df5a9bed0f5986a92eb9ba12.tar.bz2 |
Add code completion for C++ constructors wherever we see the class (or
class template) and are in a context where we can have a value.
llvm-svn: 114441
Diffstat (limited to 'clang/lib/Sema/CodeCompleteConsumer.cpp')
-rw-r--r-- | clang/lib/Sema/CodeCompleteConsumer.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/clang/lib/Sema/CodeCompleteConsumer.cpp b/clang/lib/Sema/CodeCompleteConsumer.cpp index 3322782..e298d23 100644 --- a/clang/lib/Sema/CodeCompleteConsumer.cpp +++ b/clang/lib/Sema/CodeCompleteConsumer.cpp @@ -28,6 +28,46 @@ using namespace clang; using llvm::StringRef; //===----------------------------------------------------------------------===// +// Code completion context implementation +//===----------------------------------------------------------------------===// + +bool CodeCompletionContext::wantConstructorResults() const { + switch (Kind) { + case CCC_Other: + case CCC_Statement: + case CCC_Expression: + case CCC_ObjCMessageReceiver: + case CCC_ParenthesizedExpression: + return true; + + case CCC_TopLevel: + case CCC_ObjCInterface: + case CCC_ObjCImplementation: + case CCC_ObjCIvarList: + case CCC_ClassStructUnion: + case CCC_MemberAccess: + case CCC_EnumTag: + case CCC_UnionTag: + case CCC_ClassOrStructTag: + case CCC_ObjCProtocolName: + case CCC_Namespace: + case CCC_Type: + case CCC_Name: + case CCC_PotentiallyQualifiedName: + case CCC_MacroName: + case CCC_MacroNameUse: + case CCC_PreprocessorExpression: + case CCC_PreprocessorDirective: + case CCC_NaturalLanguage: + case CCC_SelectorName: + case CCC_TypeQualifiers: + return false; + } + + return false; +} + +//===----------------------------------------------------------------------===// // Code completion string implementation //===----------------------------------------------------------------------===// CodeCompletionString::Chunk::Chunk(ChunkKind Kind, llvm::StringRef Text) |