clang 20.0.0git
|
Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo correction. More...
#include "clang/Sema/TypoCorrection.h"
Public Member Functions | |
CorrectionCandidateCallback (const IdentifierInfo *Typo=nullptr, NestedNameSpecifier *TypoNNS=nullptr) | |
virtual | ~CorrectionCandidateCallback ()=default |
virtual bool | ValidateCandidate (const TypoCorrection &candidate) |
Simple predicate used by the default RankCandidate to determine whether to return an edit distance of 0 or InvalidDistance. | |
virtual unsigned | RankCandidate (const TypoCorrection &candidate) |
Method used by Sema::CorrectTypo to assign an "edit distance" rank to a candidate (where a lower value represents a better candidate), or returning InvalidDistance if the candidate is not at all viable. | |
virtual std::unique_ptr< CorrectionCandidateCallback > | clone ()=0 |
Clone this CorrectionCandidateCallback. | |
void | setTypoName (const IdentifierInfo *II) |
void | setTypoNNS (NestedNameSpecifier *NNS) |
Public Attributes | |
bool | WantTypeSpecifiers = true |
bool | WantExpressionKeywords = true |
bool | WantCXXNamedCasts = true |
bool | WantFunctionLikeCasts = true |
bool | WantRemainingKeywords = true |
bool | WantObjCSuper = false |
bool | IsObjCIvarLookup = false |
bool | IsAddressOfOperand = false |
Static Public Attributes | |
static const unsigned | InvalidDistance = TypoCorrection::InvalidDistance |
Protected Member Functions | |
bool | MatchesTypo (const TypoCorrection &candidate) |
Protected Attributes | |
const IdentifierInfo * | Typo |
NestedNameSpecifier * | TypoNNS |
Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo correction.
Definition at line 281 of file TypoCorrection.h.
|
inlineexplicit |
Definition at line 285 of file TypoCorrection.h.
|
virtualdefault |
|
pure virtual |
Clone this CorrectionCandidateCallback.
CorrectionCandidateCallbacks are initially stack-allocated. However in case where delayed typo-correction is done we need to move the callback to storage with a longer lifetime. Every class deriving from CorrectionCandidateCallback must implement this method.
Implemented in clang::DefaultFilterCCC, clang::DeclFilterCCC< C >, clang::FunctionCallFilterCCC, and clang::NoTypoCorrectionCCC.
|
inlineprotected |
Definition at line 340 of file TypoCorrection.h.
References clang::TypoCorrection::getCorrectionAsIdentifierInfo(), clang::TypoCorrection::getCorrectionSpecifier(), clang::TypoCorrection::isResolved(), clang::TypoCorrection::requiresImport(), Typo, and TypoNNS.
Referenced by RankCandidate().
|
inlinevirtual |
Method used by Sema::CorrectTypo to assign an "edit distance" rank to a candidate (where a lower value represents a better candidate), or returning InvalidDistance if the candidate is not at all viable.
For validation callbacks that only need to determine if a candidate is viable, the default RankCandidate returns either 0 or InvalidDistance depending whether ValidateCandidate returns true or false.
Definition at line 309 of file TypoCorrection.h.
References InvalidDistance, MatchesTypo(), and ValidateCandidate().
Referenced by isCandidateViable().
|
inline |
Definition at line 322 of file TypoCorrection.h.
References Typo.
Referenced by clang::Sema::ActOnIdExpression().
|
inline |
Definition at line 323 of file TypoCorrection.h.
References TypoNNS.
Referenced by clang::Sema::ActOnIdExpression().
|
virtual |
Simple predicate used by the default RankCandidate to determine whether to return an edit distance of 0 or InvalidDistance.
This can be overridden by validators that only need to determine if a candidate is viable, without ranking potentially viable candidates. Only ValidateCandidate or RankCandidate need to be overridden by a callback wishing to check the viability of correction candidates. The default predicate always returns true if the candidate is not a type name or keyword, true for types if WantTypeSpecifiers is true, and true for keywords if WantTypeSpecifiers, WantExpressionKeywords, WantCXXNamedCasts, WantRemainingKeywords, or WantObjCSuper is true.
Reimplemented in clang::DeclFilterCCC< C >, clang::FunctionCallFilterCCC, and clang::NoTypoCorrectionCCC.
Definition at line 5416 of file SemaLookup.cpp.
References D, clang::TypoCorrection::getCorrectionSpecifier(), IsAddressOfOperand, clang::TypoCorrection::isKeyword(), clang::TypoCorrection::isResolved(), WantCXXNamedCasts, WantExpressionKeywords, WantObjCSuper, WantRemainingKeywords, and WantTypeSpecifiers.
Referenced by RankCandidate().
|
static |
Definition at line 283 of file TypoCorrection.h.
Referenced by RankCandidate().
Definition at line 337 of file TypoCorrection.h.
Referenced by clang::Sema::ActOnIdExpression(), and ValidateCandidate().
Definition at line 336 of file TypoCorrection.h.
Referenced by LookupMemberExpr().
|
protected |
Definition at line 348 of file TypoCorrection.h.
Referenced by MatchesTypo(), and setTypoName().
|
protected |
Definition at line 349 of file TypoCorrection.h.
Referenced by MatchesTypo(), and setTypoNNS().
Definition at line 330 of file TypoCorrection.h.
Referenced by AddKeywordsToConsumer(), clang::FunctionCallFilterCCC::FunctionCallFilterCCC(), clang::NoTypoCorrectionCCC::NoTypoCorrectionCCC(), and ValidateCandidate().
Definition at line 329 of file TypoCorrection.h.
Referenced by AddKeywordsToConsumer(), clang::NoTypoCorrectionCCC::NoTypoCorrectionCCC(), and ValidateCandidate().
Definition at line 331 of file TypoCorrection.h.
Referenced by AddKeywordsToConsumer(), clang::FunctionCallFilterCCC::FunctionCallFilterCCC(), and clang::NoTypoCorrectionCCC::NoTypoCorrectionCCC().
Definition at line 333 of file TypoCorrection.h.
Referenced by AddKeywordsToConsumer(), clang::Sema::CorrectTypo(), and ValidateCandidate().
Definition at line 332 of file TypoCorrection.h.
Referenced by AddKeywordsToConsumer(), clang::Sema::CorrectTypo(), clang::FunctionCallFilterCCC::FunctionCallFilterCCC(), clang::NoTypoCorrectionCCC::NoTypoCorrectionCCC(), and ValidateCandidate().
Definition at line 328 of file TypoCorrection.h.
Referenced by AddKeywordsToConsumer(), clang::FunctionCallFilterCCC::FunctionCallFilterCCC(), clang::Sema::LookupTemplateName(), clang::NoTypoCorrectionCCC::NoTypoCorrectionCCC(), and ValidateCandidate().