clang  6.0.0svn
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
clang::CorrectionCandidateCallback Class Reference

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:
Inheritance graph
[legend]
Collaboration diagram for clang::CorrectionCandidateCallback:
Collaboration graph
[legend]

Public Member Functions

 CorrectionCandidateCallback (IdentifierInfo *Typo=nullptr, NestedNameSpecifier *TypoNNS=nullptr)
 
virtual ~CorrectionCandidateCallback ()
 
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...
 
void setTypoName (IdentifierInfo *II)
 
void setTypoNNS (NestedNameSpecifier *NNS)
 

Public Attributes

bool WantTypeSpecifiers
 
bool WantExpressionKeywords
 
bool WantCXXNamedCasts
 
bool WantFunctionLikeCasts
 
bool WantRemainingKeywords
 
bool WantObjCSuper
 
bool IsObjCIvarLookup
 
bool IsAddressOfOperand
 

Static Public Attributes

static const unsigned InvalidDistance = TypoCorrection::InvalidDistance
 

Protected Member Functions

bool MatchesTypo (const TypoCorrection &candidate)
 

Protected Attributes

IdentifierInfoTypo
 
NestedNameSpecifierTypoNNS
 

Detailed Description

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

Definition at line 263 of file TypoCorrection.h.

Constructor & Destructor Documentation

◆ CorrectionCandidateCallback()

clang::CorrectionCandidateCallback::CorrectionCandidateCallback ( IdentifierInfo Typo = nullptr,
NestedNameSpecifier TypoNNS = nullptr 
)
inlineexplicit

Definition at line 267 of file TypoCorrection.h.

◆ ~CorrectionCandidateCallback()

virtual clang::CorrectionCandidateCallback::~CorrectionCandidateCallback ( )
inlinevirtual

Definition at line 275 of file TypoCorrection.h.

Member Function Documentation

◆ MatchesTypo()

bool clang::CorrectionCandidateCallback::MatchesTypo ( const TypoCorrection candidate)
inlineprotected

Definition at line 319 of file TypoCorrection.h.

◆ RankCandidate()

virtual unsigned clang::CorrectionCandidateCallback::RankCandidate ( const TypoCorrection candidate)
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 295 of file TypoCorrection.h.

References clang::TypoCorrection::InvalidDistance.

Referenced by isCandidateViable().

◆ setTypoName()

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

Definition at line 301 of file TypoCorrection.h.

◆ setTypoNNS()

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

Definition at line 302 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 overrided by validators that only need to determine if a candidate is viable, without ranking potentially viable candidates. Only ValidateCandidate or RankCandidate need to be overriden 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 4911 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 265 of file TypoCorrection.h.

◆ IsAddressOfOperand

bool clang::CorrectionCandidateCallback::IsAddressOfOperand

Definition at line 316 of file TypoCorrection.h.

◆ IsObjCIvarLookup

bool clang::CorrectionCandidateCallback::IsObjCIvarLookup

Definition at line 315 of file TypoCorrection.h.

◆ Typo

IdentifierInfo* clang::CorrectionCandidateCallback::Typo
protected

Definition at line 327 of file TypoCorrection.h.

◆ TypoNNS

NestedNameSpecifier* clang::CorrectionCandidateCallback::TypoNNS
protected

Definition at line 328 of file TypoCorrection.h.

◆ WantCXXNamedCasts

bool clang::CorrectionCandidateCallback::WantCXXNamedCasts

Definition at line 309 of file TypoCorrection.h.

◆ WantExpressionKeywords

bool clang::CorrectionCandidateCallback::WantExpressionKeywords

Definition at line 308 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer().

◆ WantFunctionLikeCasts

bool clang::CorrectionCandidateCallback::WantFunctionLikeCasts

◆ WantObjCSuper

bool clang::CorrectionCandidateCallback::WantObjCSuper

Definition at line 312 of file TypoCorrection.h.

Referenced by AddKeywordsToConsumer().

◆ WantRemainingKeywords

bool clang::CorrectionCandidateCallback::WantRemainingKeywords

◆ WantTypeSpecifiers

bool clang::CorrectionCandidateCallback::WantTypeSpecifiers

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