A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/QualTypeNames_8cpp_source.html below:

clang: lib/AST/QualTypeNames.cpp Source File

27 const

ASTContext &Ctx,

28 const

NamespaceDecl *Namesp,

29 bool

WithGlobalNsPrefix);

42 const

ASTContext &Ctx,

const

TypeDecl *TD,

43 bool

FullyQualify,

bool

WithGlobalNsPrefix);

46 const

ASTContext &Ctx,

const

Decl *

decl

,

47 bool

FullyQualified,

bool

WithGlobalNsPrefix);

50 const

ASTContext &Ctx, NestedNameSpecifier *scope,

bool

WithGlobalNsPrefix);

54 bool

WithGlobalNsPrefix) {

55 bool

Changed =

false

;

61

assert(ArgTDecl !=

nullptr

);

68

Ctx, NNS, WithGlobalNsPrefix);

77

Ctx, ArgTDecl,

true

, WithGlobalNsPrefix);

84

Ctx.getQualifiedTemplateName(NNS,

85 false

, UnderlyingTN);

93 bool

WithGlobalNsPrefix) {

94 bool

Changed =

false

;

119 bool

WithGlobalNsPrefix) {

123

assert(!isa<DependentTemplateSpecializationType>(TypePtr));

126 if

(

const auto

*TST = dyn_cast<const TemplateSpecializationType>(TypePtr)) {

127 bool

MightHaveChanged =

false

;

133

Ctx, Arg, WithGlobalNsPrefix);

134

FQArgs.push_back(Arg);

139 if

(MightHaveChanged) {

140 QualType

QT = Ctx.getTemplateSpecializationType(

141

TST->getTemplateName(), FQArgs,

142

TST->getCanonicalTypeInternal());

148

}

else if

(

const auto

*TSTRecord = dyn_cast<const RecordType>(TypePtr)) {

153 if

(

const auto

*TSTDecl =

154

dyn_cast<ClassTemplateSpecializationDecl>(TSTRecord->getDecl())) {

157 bool

MightHaveChanged =

false

;

159 for

(

unsigned int

I = 0,

E

= TemplateArgs.

size

(); I !=

E

; ++I) {

164

Ctx, Arg, WithGlobalNsPrefix);

165

FQArgs.push_back(Arg);

170 if

(MightHaveChanged) {

172 QualType

QT = Ctx.getTemplateSpecializationType(

174

TSTRecord->getCanonicalTypeInternal());

187 bool

WithGlobalNsPrefix) {

189 if

(

const auto

*NS = dyn_cast<NamespaceDecl>(DC)) {

190 while

(NS && NS->isInline()) {

192

NS = dyn_cast<NamespaceDecl>(NS->getDeclContext());

194 if

(NS && NS->getDeclName()) {

198

}

else if

(

const auto

*TD = dyn_cast<TagDecl>(DC)) {

200

}

else if

(

const auto

*TDD = dyn_cast<TypedefNameDecl>(DC)) {

202

Ctx, TDD, FullyQualify, WithGlobalNsPrefix);

212 bool

WithGlobalNsPrefix) {

213 switch

(

Scope

->getKind()) {

219

Ctx,

Scope

->getAsNamespace(), WithGlobalNsPrefix);

227 Scope

->getAsNamespaceAlias()->getNamespace()->getCanonicalDecl(),

234

Ctx,

Scope

->getPrefix(), WithGlobalNsPrefix);

242

TD = TagDeclType->getDecl();

250

}

else if

(

const auto

*TDD = dyn_cast<TypedefType>(

Type

)) {

258

llvm_unreachable(

"bad NNS kind"

);

265 bool

FullyQualified,

bool

WithGlobalNsPrefix) {

269 const auto

*Outer = dyn_cast<NamedDecl>(DC);

270 const auto

*OuterNS = dyn_cast<NamespaceDecl>(DC);

271 if

(Outer && !(OuterNS && OuterNS->isAnonymousNamespace())) {

272 if

(

const auto

*CxxDecl = dyn_cast<CXXRecordDecl>(DC)) {

274

CxxDecl->getDescribedClassTemplate()) {

285 if

(ClassTempl->spec_begin() != ClassTempl->spec_end()) {

286 Decl

= *(ClassTempl->spec_begin());

287

Outer = dyn_cast<NamedDecl>(

Decl

);

288

OuterNS = dyn_cast<NamespaceDecl>(

Decl

);

295

}

else if

(

const auto

*TD = dyn_cast<TagDecl>(Outer)) {

297

Ctx, TD, FullyQualified, WithGlobalNsPrefix);

298

}

else if

(isa<TranslationUnitDecl>(Outer)) {

317 bool

FullyQualified,

bool

WithGlobalNsPrefix) {

318 if

(!TypePtr)

return nullptr

;

322 if

(

const auto

*TDT = dyn_cast<TypedefType>(TypePtr)) {

323 Decl

= TDT->getDecl();

324

}

else if

(

const auto

*TagDeclType = dyn_cast<TagType>(TypePtr)) {

325 Decl

= TagDeclType->getDecl();

326

}

else if

(

const auto

*TST = dyn_cast<TemplateSpecializationType>(TypePtr)) {

327 Decl

= TST->getTemplateName().getAsTemplateDecl();

332 if

(!

Decl

)

return nullptr

;

335

Ctx,

Decl

, FullyQualified, WithGlobalNsPrefix);

340 bool

WithGlobalNsPrefix) {

341 while

(Namespace && Namespace->isInline()) {

343

Namespace = dyn_cast<NamespaceDecl>(Namespace->getDeclContext());

345 if

(!Namespace)

return nullptr

;

347 bool

FullyQualified =

true

;

350 createOuterNNS

(Ctx, Namespace, FullyQualified, WithGlobalNsPrefix),

357 bool

WithGlobalNsPrefix) {

359 if

(isa<const TemplateSpecializationType>(TypePtr) ||

360

isa<const RecordType>(TypePtr)) {

376 bool

WithGlobalNsPrefix) {

383

QT = Ctx.getPointerType(QT);

385

QT = Ctx.getQualifiedType(QT, Quals);

389 if

(

auto

*MPT = dyn_cast<MemberPointerType>(QT.

getTypePtr

())) {

396

QT = Ctx.getMemberPointerType(QT,

Class

.getTypePtr());

398

QT = Ctx.getQualifiedType(QT, Quals);

406 bool

IsLValueRefTy = isa<LValueReferenceType>(QT.

getTypePtr

());

412

QT = Ctx.getLValueReferenceType(QT);

414

QT = Ctx.getRValueReferenceType(QT);

416

QT = Ctx.getQualifiedType(QT, Quals);

424 while

(isa<SubstTemplateTypeParmType>(QT.

getTypePtr

())) {

428

QT = cast<SubstTemplateTypeParmType>(QT.

getTypePtr

())->desugar();

431

QT = Ctx.getQualifiedType(QT, Quals);

441 if

(

const auto

*ETypeInput = dyn_cast<ElaboratedType>(QT.

getTypePtr

())) {

442

QT = ETypeInput->getNamedType();

444

Keyword = ETypeInput->getKeyword();

450

QT = Ctx.getQualifiedType(UT->getUnderlyingType(), PrefixQualifiers);

461 if

(isa<const TemplateSpecializationType>(QT.

getTypePtr

()) ||

472

QT = Ctx.getElaboratedType(Keyword, Prefix, QT);

474

QT = Ctx.getQualifiedType(QT, PrefixQualifiers);

481 bool

WithGlobalNsPrefix) {

Defines the C++ template declaration subclasses.

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

Declaration of a class template.

DeclContext - This is used only as base class of specific decl types that can act as declaration cont...

bool isTranslationUnit() const

DeclContext * getRedeclContext()

getRedeclContext - Retrieve the context in which an entity conflicts with other entities of the same ...

Decl - This represents one declaration (or definition), e.g.

DeclContext * getDeclContext()

Represent a C++ namespace.

Represents a C++ nested name specifier, such as "\::std::vector<int>::".

static NestedNameSpecifier * Create(const ASTContext &Context, NestedNameSpecifier *Prefix, const IdentifierInfo *II)

Builds a specifier combining a prefix and an identifier.

static NestedNameSpecifier * GlobalSpecifier(const ASTContext &Context)

Returns the nested name specifier representing the global scope.

@ NamespaceAlias

A namespace alias, stored as a NamespaceAliasDecl*.

@ TypeSpec

A type, stored as a Type*.

@ TypeSpecWithTemplate

A type that was preceded by the 'template' keyword, stored as a Type*.

@ Super

Microsoft's '__super' specifier, stored as a CXXRecordDecl* of the class it appeared in.

@ Identifier

An identifier, stored as an IdentifierInfo*.

@ Global

The global specifier '::'. There is no stored value.

@ Namespace

A namespace, stored as a NamespaceDecl*.

A (possibly-)qualified type.

bool hasLocalQualifiers() const

Determine whether this particular QualType instance has any qualifiers, without looking through any t...

const Type * getTypePtr() const

Retrieves a pointer to the underlying (unqualified) type.

Qualifiers getQualifiers() const

Retrieve the set of qualifiers applied to this type.

static std::string getAsString(SplitQualType split, const PrintingPolicy &Policy)

Qualifiers getLocalQualifiers() const

Retrieve the set of qualifiers local to this particular QualType instance, not including any qualifie...

Represents a template name as written in source code.

NestedNameSpecifier * getQualifier() const

Return the nested name specifier that qualifies this name.

bool hasTemplateKeyword() const

Whether the template name was prefixed by the "template" keyword.

The collection of all-type qualifiers we support.

Scope - A scope is a transient data structure that is used while parsing the program.

Represents the declaration of a struct/union/class/enum.

A template argument list.

unsigned size() const

Retrieve the number of template arguments in this template argument list.

Represents a template argument.

QualType getAsType() const

Retrieve the type for a type template argument.

TemplateName getAsTemplate() const

Retrieve the template name for a template name argument.

@ Template

The template argument is a template name that was provided for a template template parameter.

@ Type

The template argument is a type.

ArgKind getKind() const

Return the kind of stored template argument.

The base class of all kinds of template declarations (e.g., class, function, etc.).

Represents a C++ template name within the type system.

TemplateDecl * getAsTemplateDecl(bool IgnoreDeduced=false) const

Retrieve the underlying template declaration that this template name refers to, if known.

QualifiedTemplateName * getAsQualifiedTemplateName() const

Retrieve the underlying qualified template name structure, if any.

UsingShadowDecl * getAsUsingShadowDecl() const

Retrieve the using shadow declaration through which the underlying template declaration is introduced...

Represents a declaration of a type.

const Type * getTypeForDecl() const

The base class of the type hierarchy.

CXXRecordDecl * getAsCXXRecordDecl() const

Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...

QualType getPointeeType() const

If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.

const T * getAs() const

Member-template getAs<specific type>'.

Represents a shadow declaration implicitly introduced into a scope by a (resolved) using-declaration ...

static NestedNameSpecifier * createOuterNNS(const ASTContext &Ctx, const Decl *D, bool FullyQualify, bool WithGlobalNsPrefix)

static bool getFullyQualifiedTemplateName(const ASTContext &Ctx, TemplateName &TName, bool WithGlobalNsPrefix)

static const Type * getFullyQualifiedTemplateType(const ASTContext &Ctx, const Type *TypePtr, bool WithGlobalNsPrefix)

static NestedNameSpecifier * getFullyQualifiedNestedNameSpecifier(const ASTContext &Ctx, NestedNameSpecifier *scope, bool WithGlobalNsPrefix)

Return a fully qualified version of this name specifier.

static bool getFullyQualifiedTemplateArgument(const ASTContext &Ctx, TemplateArgument &Arg, bool WithGlobalNsPrefix)

static NestedNameSpecifier * createNestedNameSpecifierForScopeOf(const ASTContext &Ctx, const Decl *decl, bool FullyQualified, bool WithGlobalNsPrefix)

Create a nested name specifier for the declaring context of the type.

std::string getFullyQualifiedName(QualType QT, const ASTContext &Ctx, const PrintingPolicy &Policy, bool WithGlobalNsPrefix=false)

Get the fully qualified name for a type.

static NestedNameSpecifier * createNestedNameSpecifier(const ASTContext &Ctx, const NamespaceDecl *Namesp, bool WithGlobalNsPrefix)

Create a NestedNameSpecifier for Namesp and its enclosing scopes.

QualType getFullyQualifiedType(QualType QT, const ASTContext &Ctx, bool WithGlobalNsPrefix=false)

Generates a QualType that can be used to name the same type if used at the end of the current transla...

const internal::VariadicAllOfMatcher< Decl > decl

Matches declarations.

The JSON file list parser is used to communicate input to InstallAPI.

ElaboratedTypeKeyword

The elaboration keyword that precedes a qualified type name or introduces an elaborated-type-specifie...

@ None

No keyword precedes the qualified type name.

@ Class

The "class" keyword introduces the elaborated-type-specifier.

Describes how types, statements, expressions, and declarations should be printed.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4