clang 22.0.0git
clang::Sema::ContextualImplicitConverter Class Referenceabstract

Abstract base class used to perform a contextual implicit conversion from an expression to any type passing a filter. More...

#include "clang/Sema/Sema.h"

Inheritance diagram for clang::Sema::ContextualImplicitConverter:
[legend]

Public Member Functions

 ContextualImplicitConverter (bool Suppress=false, bool SuppressConversion=false)
virtual bool match (QualType T)=0
 Determine whether the specified type is a valid destination type for this conversion.
virtual SemaDiagnosticBuilder diagnoseNoMatch (Sema &S, SourceLocation Loc, QualType T)=0
 Emits a diagnostic complaining that the expression does not have integral or enumeration type.
virtual SemaDiagnosticBuilder diagnoseIncomplete (Sema &S, SourceLocation Loc, QualType T)=0
 Emits a diagnostic when the expression has incomplete class type.
virtual SemaDiagnosticBuilder diagnoseExplicitConv (Sema &S, SourceLocation Loc, QualType T, QualType ConvTy)=0
 Emits a diagnostic when the only matching conversion function is explicit.
virtual SemaDiagnosticBuilder noteExplicitConv (Sema &S, CXXConversionDecl *Conv, QualType ConvTy)=0
 Emits a note for the explicit conversion function.
virtual SemaDiagnosticBuilder diagnoseAmbiguous (Sema &S, SourceLocation Loc, QualType T)=0
 Emits a diagnostic when there are multiple possible conversion functions.
virtual SemaDiagnosticBuilder noteAmbiguous (Sema &S, CXXConversionDecl *Conv, QualType ConvTy)=0
 Emits a note for one of the candidate conversions.
virtual SemaDiagnosticBuilder diagnoseConversion (Sema &S, SourceLocation Loc, QualType T, QualType ConvTy)=0
 Emits a diagnostic when we picked a conversion function (for cases when we are not allowed to pick a conversion function).
virtual ~ContextualImplicitConverter ()

Public Attributes

bool Suppress
bool SuppressConversion

Detailed Description

Abstract base class used to perform a contextual implicit conversion from an expression to any type passing a filter.

Definition at line 10268 of file Sema.h.

Constructor & Destructor Documentation

◆ ContextualImplicitConverter()

clang::Sema::ContextualImplicitConverter::ContextualImplicitConverter ( bool Suppress = false,
bool SuppressConversion = false )
inline

Definition at line 10273 of file Sema.h.

References Suppress, and SuppressConversion.

Referenced by clang::Sema::ICEConvertDiagnoser::ICEConvertDiagnoser().

◆ ~ContextualImplicitConverter()

virtual clang::Sema::ContextualImplicitConverter::~ContextualImplicitConverter ( )
inlinevirtual

Definition at line 10317 of file Sema.h.

Member Function Documentation

◆ diagnoseAmbiguous()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::diagnoseAmbiguous ( Sema & S,
SourceLocation Loc,
QualType T )
pure virtual

Emits a diagnostic when there are multiple possible conversion functions.

References clang::Sema::Sema(), and clang::T.

Referenced by diagnoseAmbiguousConversion().

◆ diagnoseConversion()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::diagnoseConversion ( Sema & S,
SourceLocation Loc,
QualType T,
QualType ConvTy )
pure virtual

Emits a diagnostic when we picked a conversion function (for cases when we are not allowed to pick a conversion function).

References clang::Sema::Sema(), and clang::T.

Referenced by recordConversion().

◆ diagnoseExplicitConv()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::diagnoseExplicitConv ( Sema & S,
SourceLocation Loc,
QualType T,
QualType ConvTy )
pure virtual

Emits a diagnostic when the only matching conversion function is explicit.

References clang::Sema::Sema(), and clang::T.

Referenced by diagnoseNoViableConversion().

◆ diagnoseIncomplete()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::diagnoseIncomplete ( Sema & S,
SourceLocation Loc,
QualType T )
pure virtual

Emits a diagnostic when the expression has incomplete class type.

References clang::Sema::Sema(), and clang::T.

Referenced by clang::Sema::PerformContextualImplicitConversion().

◆ diagnoseNoMatch()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::diagnoseNoMatch ( Sema & S,
SourceLocation Loc,
QualType T )
pure virtual

Emits a diagnostic complaining that the expression does not have integral or enumeration type.

Implemented in clang::Sema::ICEConvertDiagnoser.

References clang::Sema::Sema(), and clang::T.

Referenced by finishContextualImplicitConversion(), and clang::Sema::PerformContextualImplicitConversion().

◆ match()

virtual bool clang::Sema::ContextualImplicitConverter::match ( QualType T)
pure virtual

Determine whether the specified type is a valid destination type for this conversion.

Implemented in clang::Sema::ICEConvertDiagnoser.

References clang::T.

Referenced by finishContextualImplicitConversion(), and clang::Sema::PerformContextualImplicitConversion().

◆ noteAmbiguous()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::noteAmbiguous ( Sema & S,
CXXConversionDecl * Conv,
QualType ConvTy )
pure virtual

Emits a note for one of the candidate conversions.

References clang::Sema::Sema().

Referenced by diagnoseAmbiguousConversion().

◆ noteExplicitConv()

virtual SemaDiagnosticBuilder clang::Sema::ContextualImplicitConverter::noteExplicitConv ( Sema & S,
CXXConversionDecl * Conv,
QualType ConvTy )
pure virtual

Emits a note for the explicit conversion function.

References clang::Sema::Sema().

Referenced by diagnoseNoViableConversion().

Member Data Documentation

◆ Suppress

◆ SuppressConversion

bool clang::Sema::ContextualImplicitConverter::SuppressConversion

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