diff options
Diffstat (limited to 'include/clang/Sema/TypoCorrection.h')
-rw-r--r-- | include/clang/Sema/TypoCorrection.h | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/include/clang/Sema/TypoCorrection.h b/include/clang/Sema/TypoCorrection.h index f0b772649847..6cab59c93efc 100644 --- a/include/clang/Sema/TypoCorrection.h +++ b/include/clang/Sema/TypoCorrection.h @@ -39,7 +39,7 @@ public: static const unsigned CallbackDistanceWeight = 150U; TypoCorrection(const DeclarationName &Name, NamedDecl *NameDecl, - NestedNameSpecifier *NNS = 0, unsigned CharDistance = 0, + NestedNameSpecifier *NNS = nullptr, unsigned CharDistance = 0, unsigned QualifierDistance = 0) : CorrectionName(Name), CorrectionNameSpec(NNS), CharDistance(CharDistance), QualifierDistance(QualifierDistance), @@ -49,7 +49,7 @@ public: CorrectionDecls.push_back(NameDecl); } - TypoCorrection(NamedDecl *Name, NestedNameSpecifier *NNS = 0, + TypoCorrection(NamedDecl *Name, NestedNameSpecifier *NNS = nullptr, unsigned CharDistance = 0) : CorrectionName(Name->getDeclName()), CorrectionNameSpec(NNS), CharDistance(CharDistance), QualifierDistance(0), CallbackDistance(0), @@ -58,14 +58,14 @@ public: CorrectionDecls.push_back(Name); } - TypoCorrection(DeclarationName Name, NestedNameSpecifier *NNS = 0, + TypoCorrection(DeclarationName Name, NestedNameSpecifier *NNS = nullptr, unsigned CharDistance = 0) : CorrectionName(Name), CorrectionNameSpec(NNS), CharDistance(CharDistance), QualifierDistance(0), CallbackDistance(0), ForceSpecifierReplacement(false), RequiresImport(false) {} TypoCorrection() - : CorrectionNameSpec(0), CharDistance(0), QualifierDistance(0), + : CorrectionNameSpec(nullptr), CharDistance(0), QualifierDistance(0), CallbackDistance(0), ForceSpecifierReplacement(false), RequiresImport(false) {} @@ -81,7 +81,7 @@ public: } void setCorrectionSpecifier(NestedNameSpecifier* NNS) { CorrectionNameSpec = NNS; - ForceSpecifierReplacement = (NNS != 0); + ForceSpecifierReplacement = (NNS != nullptr); } void WillReplaceSpecifier(bool ForceReplacement) { @@ -130,7 +130,7 @@ public: /// \brief Gets the pointer to the declaration of the typo correction NamedDecl *getCorrectionDecl() const { - return hasCorrectionDecl() ? *(CorrectionDecls.begin()) : 0; + return hasCorrectionDecl() ? *(CorrectionDecls.begin()) : nullptr; } template <class DeclClass> DeclClass *getCorrectionDeclAs() const { @@ -172,7 +172,7 @@ public: /// as the only element in the list to mark this TypoCorrection as a keyword. void makeKeyword() { CorrectionDecls.clear(); - CorrectionDecls.push_back(0); + CorrectionDecls.push_back(nullptr); ForceSpecifierReplacement = true; } @@ -180,7 +180,7 @@ public: // item in CorrectionDecls is NULL. bool isKeyword() const { return !CorrectionDecls.empty() && - CorrectionDecls.front() == 0; + CorrectionDecls.front() == nullptr; } // Check if this TypoCorrection is the given keyword. @@ -250,8 +250,8 @@ public: CorrectionCandidateCallback() : WantTypeSpecifiers(true), WantExpressionKeywords(true), WantCXXNamedCasts(true), WantRemainingKeywords(true), - WantObjCSuper(false), - IsObjCIvarLookup(false) {} + WantObjCSuper(false), IsObjCIvarLookup(false), + IsAddressOfOperand(false) {} virtual ~CorrectionCandidateCallback() {} @@ -287,6 +287,7 @@ public: // Temporary hack for the one case where a CorrectTypoContext enum is used // when looking up results. bool IsObjCIvarLookup; + bool IsAddressOfOperand; }; /// @brief Simple template class for restricting typo correction candidates @@ -294,7 +295,7 @@ public: template <class C> class DeclFilterCCC : public CorrectionCandidateCallback { public: - virtual bool ValidateCandidate(const TypoCorrection &candidate) { + bool ValidateCandidate(const TypoCorrection &candidate) override { return candidate.getCorrectionDeclAs<C>(); } }; @@ -305,13 +306,16 @@ public: class FunctionCallFilterCCC : public CorrectionCandidateCallback { public: FunctionCallFilterCCC(Sema &SemaRef, unsigned NumArgs, - bool HasExplicitTemplateArgs); + bool HasExplicitTemplateArgs, + MemberExpr *ME = nullptr); - virtual bool ValidateCandidate(const TypoCorrection &candidate); + bool ValidateCandidate(const TypoCorrection &candidate) override; private: unsigned NumArgs; bool HasExplicitTemplateArgs; + DeclContext *CurContext; + MemberExpr *MemberFn; }; // @brief Callback class that effectively disabled typo correction @@ -324,7 +328,7 @@ public: WantRemainingKeywords = false; } - virtual bool ValidateCandidate(const TypoCorrection &candidate) { + bool ValidateCandidate(const TypoCorrection &candidate) override { return false; } }; |