summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaCodeComplete.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2012-01-23 15:59:30 +0000
committerDouglas Gregor <dgregor@apple.com>2012-01-23 15:59:30 +0000
commit1cc88a977c624472bc9d1e30f91b5b141d122866 (patch)
treeeee62eeb78fa01f05acc73abab2822ae4a08ae65 /clang/lib/Sema/SemaCodeComplete.cpp
parentc7ee2013d94b545b50b95a19125fa5f8053739e1 (diff)
downloadbcm5719-llvm-1cc88a977c624472bc9d1e30f91b5b141d122866.tar.gz
bcm5719-llvm-1cc88a977c624472bc9d1e30f91b5b141d122866.zip
Handle pseudo-object expressions (and any other placeholder
expression) when code-completing member access expressions. Fixes <rdar://problem/10717172>. llvm-svn: 148703
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
-rw-r--r--clang/lib/Sema/SemaCodeComplete.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp
index 5a553513b41..623e68b8a5a 100644
--- a/clang/lib/Sema/SemaCodeComplete.cpp
+++ b/clang/lib/Sema/SemaCodeComplete.cpp
@@ -3351,15 +3351,19 @@ static void AddObjCProperties(ObjCContainerDecl *Container,
}
}
-void Sema::CodeCompleteMemberReferenceExpr(Scope *S, Expr *BaseE,
+void Sema::CodeCompleteMemberReferenceExpr(Scope *S, Expr *Base,
SourceLocation OpLoc,
bool IsArrow) {
- if (!BaseE || !CodeCompleter)
+ if (!Base || !CodeCompleter)
return;
+ ExprResult ConvertedBase = PerformMemberExprBaseConversion(Base, IsArrow);
+ if (ConvertedBase.isInvalid())
+ return;
+ Base = ConvertedBase.get();
+
typedef CodeCompletionResult Result;
- Expr *Base = static_cast<Expr *>(BaseE);
QualType BaseType = Base->getType();
if (IsArrow) {
OpenPOWER on IntegriCloud