diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-10-15 13:35:25 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-10-15 13:35:25 +0000 |
commit | 7b824e854b8ffc0d46337d95425825015528f35c (patch) | |
tree | fedbaab08bf4a3b081045e8d5f9995491b0bcdc0 /lib | |
parent | a6e937ce32474934778346f4d51c3beec40e77ec (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.cpp | 14 |
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(); |