clang-tools 22.0.0git
clang::tidy::utils::fixit Namespace Reference

Enumerations

enum class  QualifierPolicy { Left , Right }
 This enum defines where the qualifier shall be preferably added. More...
enum class  QualifierTarget { Pointee , Value }
 This enum defines which entity is the target for adding the qualifier. This makes only a difference for pointer-types. Other types behave identical for either value of ConstTarget. More...

Functions

FixItHint changeVarDeclToReference (const VarDecl &Var, ASTContext &Context)
 Creates fix to make VarDecl a reference by adding &.
static bool isValueType (const Type *T)
static bool isValueType (QualType QT)
static bool isMemberOrFunctionPointer (QualType QT)
static bool locDangerous (SourceLocation S)
static std::optional< SourceLocation > skipLParensBackwards (SourceLocation Start, const ASTContext &Context)
static std::optional< FixItHint > fixIfNotDangerous (SourceLocation Loc, StringRef Text)
static std::string buildQualifier (Qualifiers::TQ Qualifier, bool WhitespaceBefore=false)
static std::optional< FixItHint > changeValue (const VarDecl &Var, Qualifiers::TQ Qualifier, QualifierTarget QualTarget, QualifierPolicy QualPolicy, const ASTContext &Context)
static std::optional< FixItHint > changePointerItself (const VarDecl &Var, Qualifiers::TQ Qualifier, const ASTContext &Context)
static std::optional< FixItHint > changePointer (const VarDecl &Var, Qualifiers::TQ Qualifier, const Type *Pointee, QualifierTarget QualTarget, QualifierPolicy QualPolicy, const ASTContext &Context)
static std::optional< FixItHint > changeReferencee (const VarDecl &Var, Qualifiers::TQ Qualifier, QualType Pointee, QualifierTarget QualTarget, QualifierPolicy QualPolicy, const ASTContext &Context)
std::optional< FixItHint > addQualifierToVarDecl (const VarDecl &Var, const ASTContext &Context, Qualifiers::TQ Qualifier, QualifierTarget QualTarget=QualifierTarget::Pointee, QualifierPolicy QualPolicy=QualifierPolicy::Left)
 Creates fix to qualify VarDecl with the specified Qualifier. Requires that Var is isolated in written code like in int foo = 42;.
bool areParensNeededForStatement (const Stmt &Node)
static bool needParensAfterUnaryOperator (const Expr &ExprNode)
std::string formatDereference (const Expr &ExprNode, const ASTContext &Context)

Enumeration Type Documentation

◆ QualifierPolicy

This enum defines where the qualifier shall be preferably added.

Enumerator
Left 
Right 

Definition at line 23 of file FixItHintUtils.h.

◆ QualifierTarget

This enum defines which entity is the target for adding the qualifier. This makes only a difference for pointer-types. Other types behave identical for either value of ConstTarget.

Enumerator
Pointee 
Value 

Transforming a pointer attaches to the pointee and not the pointer itself. For references and normal values this option has no effect. int * p = &i; -> const int * p = &i or int const.

  • p = &i

.

Definition at line 31 of file FixItHintUtils.h.

Function Documentation

◆ addQualifierToVarDecl()

std::optional< FixItHint > clang::tidy::utils::fixit::addQualifierToVarDecl ( const VarDecl & Var,
const ASTContext & Context,
Qualifiers::TQ Qualifier,
QualifierTarget QualTarget,
QualifierPolicy QualPolicy )

Creates fix to qualify VarDecl with the specified Qualifier. Requires that Var is isolated in written code like in int foo = 42;.

Definition at line 187 of file FixItHintUtils.cpp.

References changePointer(), changePointerItself(), changeReferencee(), changeValue(), isMemberOrFunctionPointer(), isValueType(), Left, Pointee, Right, and Value.

Referenced by clang::tidy::performance::UnnecessaryValueParamCheck::handleConstRefFix(), and clang::tidy::performance::recordFixes().

◆ areParensNeededForStatement()

bool clang::tidy::utils::fixit::areParensNeededForStatement ( const Stmt & Node)

◆ buildQualifier()

std::string clang::tidy::utils::fixit::buildQualifier ( Qualifiers::TQ Qualifier,
bool WhitespaceBefore = false )
static

◆ changePointer()

std::optional< FixItHint > clang::tidy::utils::fixit::changePointer ( const VarDecl & Var,
Qualifiers::TQ Qualifier,
const Type * Pointee,
QualifierTarget QualTarget,
QualifierPolicy QualPolicy,
const ASTContext & Context )
static

◆ changePointerItself()

std::optional< FixItHint > clang::tidy::utils::fixit::changePointerItself ( const VarDecl & Var,
Qualifiers::TQ Qualifier,
const ASTContext & Context )
static

◆ changeReferencee()

std::optional< FixItHint > clang::tidy::utils::fixit::changeReferencee ( const VarDecl & Var,
Qualifiers::TQ Qualifier,
QualType Pointee,
QualifierTarget QualTarget,
QualifierPolicy QualPolicy,
const ASTContext & Context )
static

◆ changeValue()

std::optional< FixItHint > clang::tidy::utils::fixit::changeValue ( const VarDecl & Var,
Qualifiers::TQ Qualifier,
QualifierTarget QualTarget,
QualifierPolicy QualPolicy,
const ASTContext & Context )
static

◆ changeVarDeclToReference()

FixItHint clang::tidy::utils::fixit::changeVarDeclToReference ( const VarDecl & Var,
ASTContext & Context )

Creates fix to make VarDecl a reference by adding &.

Definition at line 20 of file FixItHintUtils.cpp.

References clang::tidy::utils::lexer::getPreviousToken().

Referenced by clang::tidy::performance::UnnecessaryValueParamCheck::handleConstRefFix(), and clang::tidy::performance::recordFixes().

◆ fixIfNotDangerous()

std::optional< FixItHint > clang::tidy::utils::fixit::fixIfNotDangerous ( SourceLocation Loc,
StringRef Text )
static

Definition at line 66 of file FixItHintUtils.cpp.

References locDangerous().

Referenced by changePointer(), changePointerItself(), changeReferencee(), and changeValue().

◆ formatDereference()

std::string clang::tidy::utils::fixit::formatDereference ( const Expr & ExprNode,
const ASTContext & Context )

◆ isMemberOrFunctionPointer()

bool clang::tidy::utils::fixit::isMemberOrFunctionPointer ( QualType QT)
static

Definition at line 36 of file FixItHintUtils.cpp.

Referenced by addQualifierToVarDecl().

◆ isValueType() [1/2]

bool clang::tidy::utils::fixit::isValueType ( const Type * T)
static

◆ isValueType() [2/2]

bool clang::tidy::utils::fixit::isValueType ( QualType QT)
static

Definition at line 35 of file FixItHintUtils.cpp.

References isValueType().

◆ locDangerous()

bool clang::tidy::utils::fixit::locDangerous ( SourceLocation S)
static

◆ needParensAfterUnaryOperator()

bool clang::tidy::utils::fixit::needParensAfterUnaryOperator ( const Expr & ExprNode)
static

Definition at line 267 of file FixItHintUtils.cpp.

Referenced by formatDereference().

◆ skipLParensBackwards()

std::optional< SourceLocation > clang::tidy::utils::fixit::skipLParensBackwards ( SourceLocation Start,
const ASTContext & Context )
static