aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-10-15 13:35:25 +0000
committerDouglas Gregor <dgregor@apple.com>2010-10-15 13:35:25 +0000
commit7b824e854b8ffc0d46337d95425825015528f35c (patch)
treefedbaab08bf4a3b081045e8d5f9995491b0bcdc0 /lib
parenta6e937ce32474934778346f4d51c3beec40e77ec (diff)
When we're in the context of an Objective-C message send's receiver,
typo correction prefers "super" over other, equivalent completions. I believe this will fix the regression on the buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116574 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Sema/SemaLookup.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp
index f12ac22f3d..9056e79574 100644
--- a/lib/Sema/SemaLookup.cpp
+++ b/lib/Sema/SemaLookup.cpp
@@ -2704,6 +2704,10 @@ public:
unsigned size() const { return BestResults.size(); }
bool empty() const { return BestResults.empty(); }
+ bool &operator[](llvm::StringRef Name) {
+ return BestResults[Name];
+ }
+
unsigned getBestEditDistance() const { return BestEditDistance; }
};
@@ -3119,7 +3123,15 @@ DeclarationName Sema::CorrectTypo(LookupResult &Res, Scope *S, CXXScopeSpec *SS,
// If only a single name remains, return that result.
if (Consumer.size() == 1)
return &Context.Idents.get(Consumer.begin()->getKey());
-
+ else if (Consumer.size() > 1 && CTC == CTC_ObjCMessageReceiver
+ && Consumer["super"]) {
+ // Prefix 'super' when we're completing in a message-receiver
+ // context.
+ Res.suppressDiagnostics();
+ Res.clear();
+ return &Context.Idents.get("super");
+ }
+
Res.suppressDiagnostics();
Res.setLookupName(Typo);
Res.clear();