clang 10.0.0git

Classes | Public Member Functions | List of all members
clang::TypoCorrectionConsumer Class Reference

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

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

## Public Member Functions
| TypoCorrectionConsumer (Sema &SemaRef, const DeclarationNameInfo &TypoName, Sema::LookupNameKind LookupKind, Scope *S, CXXScopeSpec *SS, std::unique_ptr< CorrectionCandidateCallback > CCC, DeclContext *MemberContext, bool EnteringContext)
bool | includeHiddenDecls () const override
| Determine whether hidden declarations (from unimported modules) should be given to this consumer. More...
void | FoundDecl (NamedDecl *ND, NamedDecl *Hiding, DeclContext *Ctx, bool InBaseClass) override
| Invoked each time `Sema::LookupVisibleDecls()` finds a declaration visible from the current scope or context. More...
void | FoundName (StringRef Name)
void | addKeywordResult (StringRef Keyword)
void | addCorrection (TypoCorrection Correction)
bool | empty () const
TypoResultList & | operator[] (StringRef Name)
| Return the list of TypoCorrections for the given identifier from the set of corrections that have the closest edit distance, if any. More...
unsigned | getBestEditDistance (bool Normalized)
| Return the edit distance of the corrections that have the closest/best edit distance from the original typop. More...
void | addNamespaces (const llvm::MapVector< NamespaceDecl *, bool > &KnownNamespaces)
| Set-up method to add to the consumer the set of namespaces to use in performing corrections to nested name specifiers. More...
const TypoCorrection & | getNextCorrection ()
| Return the next typo correction that passes all internal filters and is deemed valid by the consumer's CorrectionCandidateCallback, starting with the corrections that have the closest edit distance. More...
const TypoCorrection & | getCurrentCorrection ()
| Get the last correction returned by getNextCorrection(). More...
const TypoCorrection & | peekNextCorrection ()
| Return the next typo correction like getNextCorrection, but keep the internal state pointed to the current correction (i.e. More...
void | resetCorrectionStream ()
| Reset the consumer's position in the stream of viable corrections (i.e. More...
bool | finished ()
| Return whether the end of the stream of corrections has been reached. More...
void | saveCurrentPosition ()
| Save the current position in the correction stream (overwriting any previously saved position). More...
void | restoreSavedPosition ()
| Restore the saved position in the correction stream. More...
ASTContext & | getContext () const
const LookupResult & | getLookupResult () const
bool | isAddressOfOperand () const
const CXXScopeSpec * | getSS () const
Scope * | getScope () const
CorrectionCandidateCallback * | getCorrectionValidator () const
Public Member Functions inherited from clang::VisibleDeclConsumer
virtual | ~VisibleDeclConsumer ()
| Destroys the visible declaration consumer. More...
virtual void | EnteredContext (DeclContext *Ctx)
| Callback to inform the client that Sema entered into a new context to find a visible declaration. More...

## Detailed Description

Definition at line 85 of file SemaInternal.h.

## Constructor & Destructor Documentation

## ◆ TypoCorrectionConsumer()

clang::TypoCorrectionConsumer::TypoCorrectionConsumer | ( | Sema & | SemaRef,
|  | const DeclarationNameInfo & | TypoName,
|  | Sema::LookupNameKind | LookupKind,
|  | Scope * | S,
|  | CXXScopeSpec * | SS,
|  | std::unique_ptr< CorrectionCandidateCallback > | CCC,
|  | DeclContext * | MemberContext,
|  | bool | EnteringContext
| ) |  |
| inline

Definition at line 91 of file SemaInternal.h.

## Member Function Documentation

## ◆ addCorrection()

void TypoCorrectionConsumer::addCorrection | ( | TypoCorrection | Correction | ) |

Definition at line 4269 of file SemaLookup.cpp.

## ◆ addKeywordResult()

void TypoCorrectionConsumer::addKeywordResult | ( | StringRef | Keyword | ) |

Definition at line 4240 of file SemaLookup.cpp.

Referenced by AddKeywordsToConsumer().

## ◆ addNamespaces()

void TypoCorrectionConsumer::addNamespaces | ( | const llvm::MapVector< NamespaceDecl *, bool > & | KnownNamespaces | ) |

Set-up method to add to the consumer the set of namespaces to use in performing corrections to nested name specifiers.

This method also implicitly adds all of the known classes in the current AST context to the to the consumer for correcting nested name specifiers.

Definition at line 4314 of file SemaLookup.cpp.

References clang::NestedNameSpecifier::getAsType(), clang::CXXScopeSpec::getScopeRep(), clang::Type::getTypeClass(), and clang::CXXScopeSpec::isValid().

## ◆ empty()

bool clang::TypoCorrectionConsumer::empty | ( |  | ) | const
| inline

Definition at line 119 of file SemaInternal.h.

## ◆ finished()

bool clang::TypoCorrectionConsumer::finished | ( |  | ) |
| inline

Return whether the end of the stream of corrections has been reached.

Definition at line 180 of file SemaInternal.h.

## ◆ FoundDecl()

void TypoCorrectionConsumer::FoundDecl | ( | NamedDecl * | ND,
|  | NamedDecl * | Hiding,
|  | DeclContext * | Ctx,
|  | bool | InBaseClass
| ) |  |
| override virtual

Invoked each time `Sema::LookupVisibleDecls()` finds a declaration visible from the current scope or context.

Parameters

  ND | the declaration found.
  Hiding | a declaration that hides the declaration `ND`, or NULL if no such declaration exists.
  Ctx | the original context from which the lookup started.
  InBaseClass | whether this declaration was found in base class of the context we searched.

Implements clang::VisibleDeclConsumer.

Definition at line 4213 of file SemaLookup.cpp.

References clang::NamedDecl::getIdentifier(), and clang::LookupResult::isVisible().

## ◆ FoundName()

void TypoCorrectionConsumer::FoundName | ( | StringRef | Name | ) |

Definition at line 4234 of file SemaLookup.cpp.

## ◆ getBestEditDistance()

unsigned clang::TypoCorrectionConsumer::getBestEditDistance | ( | bool | Normalized | ) |
| inline

Return the edit distance of the corrections that have the closest/best edit distance from the original typop.

Definition at line 131 of file SemaInternal.h.

References max(), and clang::TypoCorrection::NormalizeEditDistance().

## ◆ getContext()

ASTContext& clang::TypoCorrectionConsumer::getContext | ( |  | ) | const
| inline

Definition at line 196 of file SemaInternal.h.

## ◆ getCorrectionValidator()

CorrectionCandidateCallback* clang::TypoCorrectionConsumer::getCorrectionValidator | ( |  | ) | const
| inline

Definition at line 202 of file SemaInternal.h.

References clang::Sema::Context, and clang::Sema::CurContext.

## ◆ getCurrentCorrection()

const TypoCorrection& clang::TypoCorrectionConsumer::getCurrentCorrection | ( |  | ) |
| inline

Get the last correction returned by getNextCorrection().

Definition at line 154 of file SemaInternal.h.

## ◆ getLookupResult()

const LookupResult& clang::TypoCorrectionConsumer::getLookupResult | ( |  | ) | const
| inline

Definition at line 197 of file SemaInternal.h.

References clang::Result.

Referenced by attemptRecovery().

## ◆ getNextCorrection()

const TypoCorrection & TypoCorrectionConsumer::getNextCorrection | ( |  | ) |

Return the next typo correction that passes all internal filters and is deemed valid by the consumer's CorrectionCandidateCallback, starting with the corrections that have the closest edit distance.

An empty TypoCorrection is returned once no more viable corrections remain in the consumer.

Definition at line 4344 of file SemaLookup.cpp.

References clang::TypoCorrection::begin(), clang::TypoCorrection::getCorrectionAsIdentifierInfo(), clang::TypoCorrection::isResolved(), LookupPotentialTypoResult(), and clang::TypoCorrection::requiresImport().

## ◆ getScope()

Scope* clang::TypoCorrectionConsumer::getScope | ( |  | ) | const
| inline

Definition at line 201 of file SemaInternal.h.

Referenced by attemptRecovery().

## ◆ getSS()

const CXXScopeSpec* clang::TypoCorrectionConsumer::getSS | ( |  | ) | const
| inline

Definition at line 200 of file SemaInternal.h.

Referenced by attemptRecovery().

## ◆ includeHiddenDecls()

bool clang::TypoCorrectionConsumer::includeHiddenDecls | ( |  | ) | const
| inline override virtual

Determine whether hidden declarations (from unimported modules) should be given to this consumer.

By default, they are not included.

Reimplemented from clang::VisibleDeclConsumer.

Definition at line 110 of file SemaInternal.h.

## ◆ isAddressOfOperand()

bool clang::TypoCorrectionConsumer::isAddressOfOperand | ( |  | ) | const
| inline

Definition at line 199 of file SemaInternal.h.

Referenced by attemptRecovery().

## ◆ operator[]()

TypoResultList& clang::TypoCorrectionConsumer::operator[] | ( | StringRef | Name | ) |
| inline

Return the list of TypoCorrections for the given identifier from the set of corrections that have the closest edit distance, if any.

Definition at line 125 of file SemaInternal.h.

## ◆ peekNextCorrection()

const TypoCorrection& clang::TypoCorrectionConsumer::peekNextCorrection | ( |  | ) |
| inline

Return the next typo correction like getNextCorrection, but keep the internal state pointed to the current correction (i.e.

the next time getNextCorrection is called, it will return the same correction returned by peekNextcorrection).

Definition at line 164 of file SemaInternal.h.

## ◆ resetCorrectionStream()

void clang::TypoCorrectionConsumer::resetCorrectionStream | ( |  | ) |
| inline

Reset the consumer's position in the stream of viable corrections (i.e.

getNextCorrection() will return each of the previously returned corrections in order before returning any new corrections).

Definition at line 174 of file SemaInternal.h.

## ◆ restoreSavedPosition()

void clang::TypoCorrectionConsumer::restoreSavedPosition | ( |  | ) |
| inline

Restore the saved position in the correction stream.

Definition at line 192 of file SemaInternal.h.

## ◆ saveCurrentPosition()

void clang::TypoCorrectionConsumer::saveCurrentPosition | ( |  | ) |
| inline

Save the current position in the correction stream (overwriting any previously saved position).

Definition at line 187 of file SemaInternal.h.

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

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