clang 10.0.0git

Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
clang::CorrectionCandidateCallback Class Referenceabstract

Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo correction. More...

`#include "clang/Sema/TypoCorrection.h"`

Inheritance diagram for clang::CorrectionCandidateCallback:
[legend]
Collaboration diagram for clang::CorrectionCandidateCallback:
[legend]

## Public Member Functions
| CorrectionCandidateCallback (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. More...
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. More...
virtual std::unique_ptr< CorrectionCandidateCallback > | clone ()=0
| Clone this CorrectionCandidateCallback. More...
void | setTypoName (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
IdentifierInfo * | Typo
NestedNameSpecifier * | TypoNNS

## Detailed Description

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.

## Constructor & Destructor Documentation

## ◆ CorrectionCandidateCallback()

clang::CorrectionCandidateCallback::CorrectionCandidateCallback | ( | IdentifierInfo * | Typo = `nullptr`,
|  | NestedNameSpecifier * | TypoNNS = `nullptr`
| ) |  |
| inline explicit

Definition at line 285 of file TypoCorrection.h.

## ◆ ~CorrectionCandidateCallback()

virtual clang::CorrectionCandidateCallback::~CorrectionCandidateCallback | ( |  | ) |
| virtual default

## Member Function Documentation

## ◆ clone()

virtual std::unique_ptr<CorrectionCandidateCallback> clang::CorrectionCandidateCallback::clone | ( |  | ) |
| 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::NoTypoCorrectionCCC, clang::FunctionCallFilterCCC, clang::DeclFilterCCC< C >, and clang::DefaultFilterCCC.

## ◆ MatchesTypo()

bool clang::CorrectionCandidateCallback::MatchesTypo | ( | const TypoCorrection & | candidate | ) |
| inline protected

Definition at line 340 of file TypoCorrection.h.

## ◆ RankCandidate()

virtual unsigned clang::CorrectionCandidateCallback::RankCandidate | ( | const TypoCorrection & | candidate | ) |
| inline virtual

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 clang::TypoCorrection::InvalidDistance.

Referenced by isCandidateViable().

## ◆ setTypoName()

void clang::CorrectionCandidateCallback::setTypoName | ( | IdentifierInfo * | II | ) |
| inline

Definition at line 322 of file TypoCorrection.h.

## ◆ setTypoNNS()

void clang::CorrectionCandidateCallback::setTypoNNS | ( | NestedNameSpecifier * | NNS | ) |
| inline

Definition at line 323 of file TypoCorrection.h.

## ◆ ValidateCandidate()

bool CorrectionCandidateCallback::ValidateCandidate | ( | const TypoCorrection & | candidate | ) |
| 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::NoTypoCorrectionCCC, clang::FunctionCallFilterCCC, and clang::DeclFilterCCC< C >.

Definition at line 5192 of file SemaLookup.cpp.

References clang::TypoCorrection::isKeyword(), and clang::TypoCorrection::isResolved().

## Member Data Documentation

## ◆ InvalidDistance

const unsigned clang::CorrectionCandidateCallback::InvalidDistance = TypoCorrection::InvalidDistance
| static

Definition at line 283 of file TypoCorrection.h.

## ◆ IsAddressOfOperand

bool clang::CorrectionCandidateCallback::IsAddressOfOperand = false

Definition at line 337 of file TypoCorrection.h.

## ◆ IsObjCIvarLookup

bool clang::CorrectionCandidateCallback::IsObjCIvarLookup = false

Definition at line 336 of file TypoCorrection.h.

Referenced by LookupMemberExpr().

## ◆ Typo

IdentifierInfo* clang::CorrectionCandidateCallback::Typo
| protected

Definition at line 348 of file TypoCorrection.h.

## ◆ TypoNNS

NestedNameSpecifier* clang::CorrectionCandidateCallback::TypoNNS
| protected

Definition at line 349 of file TypoCorrection.h.

## ◆ WantCXXNamedCasts

bool clang::CorrectionCandidateCallback::WantCXXNamedCasts = true

Definition at line 330 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer(), and clang::FunctionCallFilterCCC::FunctionCallFilterCCC().

## ◆ WantExpressionKeywords

bool clang::CorrectionCandidateCallback::WantExpressionKeywords = true

Definition at line 329 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer().

## ◆ WantFunctionLikeCasts

bool clang::CorrectionCandidateCallback::WantFunctionLikeCasts = true

Definition at line 331 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer(), and clang::FunctionCallFilterCCC::FunctionCallFilterCCC().

## ◆ WantObjCSuper

bool clang::CorrectionCandidateCallback::WantObjCSuper = false

Definition at line 333 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer(), and clang::Sema::CorrectTypo().

## ◆ WantRemainingKeywords

bool clang::CorrectionCandidateCallback::WantRemainingKeywords = true

Definition at line 332 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer(), clang::Sema::CorrectTypo(), and clang::FunctionCallFilterCCC::FunctionCallFilterCCC().

## ◆ WantTypeSpecifiers

bool clang::CorrectionCandidateCallback::WantTypeSpecifiers = true

Definition at line 328 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer(), and clang::FunctionCallFilterCCC::FunctionCallFilterCCC().

The documentation for this class was generated from the following files:

- include/clang/Sema/TypoCorrection.h
- lib/Sema/SemaLookup.cpp