summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/Sema/Sema.h35
-rw-r--r--clang/lib/Sema/SemaLookup.cpp73
2 files changed, 1 insertions, 107 deletions
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index c3bdad80dfa..1320a05176d 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -1833,41 +1833,6 @@ public:
VisibleDeclConsumer &Consumer,
bool IncludeGlobalScope = true);
- /// \brief The context in which typo-correction occurs.
- ///
- /// The typo-correction context affects which keywords (if any) are
- /// considered when trying to correct for typos.
- enum CorrectTypoContext {
- /// \brief An unknown context, where any keyword might be valid.
- CTC_Unknown,
- /// \brief A context where no keywords are used (e.g. we expect an actual
- /// name).
- CTC_NoKeywords,
- /// \brief A context where we're correcting a type name.
- CTC_Type,
- /// \brief An expression context.
- CTC_Expression,
- /// \brief A type cast, or anything else that can be followed by a '<'.
- CTC_CXXCasts,
- /// \brief A member lookup context.
- CTC_MemberLookup,
- /// \brief An Objective-C ivar lookup context (e.g., self->ivar).
- CTC_ObjCIvarLookup,
- /// \brief An Objective-C property lookup context (e.g., self.prop).
- CTC_ObjCPropertyLookup,
- /// \brief The receiver of an Objective-C message send within an
- /// Objective-C method where 'super' is a valid keyword.
- CTC_ObjCMessageReceiver
- };
-
- TypoCorrection CorrectTypo(const DeclarationNameInfo &Typo,
- Sema::LookupNameKind LookupKind,
- Scope *S, CXXScopeSpec *SS,
- DeclContext *MemberContext = 0,
- bool EnteringContext = false,
- CorrectTypoContext CTC = CTC_Unknown,
- const ObjCObjectPointerType *OPT = 0);
-
TypoCorrection CorrectTypo(const DeclarationNameInfo &Typo,
Sema::LookupNameKind LookupKind,
Scope *S, CXXScopeSpec *SS,
diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp
index 96137f71480..44590981790 100644
--- a/clang/lib/Sema/SemaLookup.cpp
+++ b/clang/lib/Sema/SemaLookup.cpp
@@ -3503,77 +3503,6 @@ static void AddKeywordsToConsumer(Sema &SemaRef,
}
}
-namespace {
-
-// Simple CorrectionCandidateCallback class that sets the keyword flags based
-// on a given CorrectTypoContext, but does not perform any extra validation
-// of typo correction candidates.
-class CorrectTypoContextReplacementCCC : public CorrectionCandidateCallback {
- public:
- CorrectTypoContextReplacementCCC(
- Sema &SemaRef, Sema::CorrectTypoContext CTC = Sema::CTC_Unknown) {
- WantTypeSpecifiers = false;
- WantExpressionKeywords = false;
- WantCXXNamedCasts = false;
- WantRemainingKeywords = false;
- switch (CTC) {
- case Sema::CTC_Unknown:
- WantTypeSpecifiers = true;
- WantExpressionKeywords = true;
- WantCXXNamedCasts = true;
- WantRemainingKeywords = true;
- if (ObjCMethodDecl *Method = SemaRef.getCurMethodDecl())
- WantObjCSuper = Method->getClassInterface() &&
- Method->getClassInterface()->getSuperClass();
- break;
-
- case Sema::CTC_Type:
- WantTypeSpecifiers = true;
- break;
-
- case Sema::CTC_ObjCMessageReceiver:
- WantObjCSuper = true;
- // Fall through to handle message receivers like expressions.
-
- case Sema::CTC_Expression:
- if (SemaRef.getLangOptions().CPlusPlus)
- WantTypeSpecifiers = true;
- WantExpressionKeywords = true;
- // Fall through to get C++ named casts.
-
- case Sema::CTC_CXXCasts:
- WantCXXNamedCasts = true;
- break;
-
- case Sema::CTC_MemberLookup:
- case Sema::CTC_NoKeywords:
- case Sema::CTC_ObjCPropertyLookup:
- break;
-
- case Sema::CTC_ObjCIvarLookup:
- IsObjCIvarLookup = true;
- break;
- }
- }
-};
-
-}
-
-/// \brief Compatibility wrapper for call sites that pass a CorrectTypoContext
-/// value to CorrectTypo instead of providing a callback object.
-TypoCorrection Sema::CorrectTypo(const DeclarationNameInfo &TypoName,
- Sema::LookupNameKind LookupKind,
- Scope *S, CXXScopeSpec *SS,
- DeclContext *MemberContext,
- bool EnteringContext,
- CorrectTypoContext CTC,
- const ObjCObjectPointerType *OPT) {
- CorrectTypoContextReplacementCCC CTCVerifier(*this, CTC);
-
- return CorrectTypo(TypoName, LookupKind, S, SS, &CTCVerifier, MemberContext,
- EnteringContext, OPT);
-}
-
/// \brief Try to "correct" a typo in the source code by finding
/// visible declarations whose names are similar to the name that was
/// present in the source code.
@@ -3708,7 +3637,7 @@ TypoCorrection Sema::CorrectTypo(const DeclarationNameInfo &TypoName,
}
}
- CorrectTypoContextReplacementCCC DefaultCCC(*this);
+ CorrectionCandidateCallback DefaultCCC;
AddKeywordsToConsumer(*this, Consumer, S, CCC ? *CCC : DefaultCCC);
// If we haven't found anything, we're done.
OpenPOWER on IntegriCloud