[NFC][Clang] Improve const correctness for IdentifierInfo (#79365)
The IdentifierInfo isn't typically modified. Use 'const' wherever possible.
This commit is contained in:
parent
be10070f91
commit
fca51911d4
@ -3411,13 +3411,13 @@ const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
|
||||
|
||||
/// Utility function for constructing a nullary selector.
|
||||
inline Selector GetNullarySelector(StringRef name, ASTContext &Ctx) {
|
||||
IdentifierInfo* II = &Ctx.Idents.get(name);
|
||||
const IdentifierInfo *II = &Ctx.Idents.get(name);
|
||||
return Ctx.Selectors.getSelector(0, &II);
|
||||
}
|
||||
|
||||
/// Utility function for constructing an unary selector.
|
||||
inline Selector GetUnarySelector(StringRef name, ASTContext &Ctx) {
|
||||
IdentifierInfo* II = &Ctx.Idents.get(name);
|
||||
const IdentifierInfo *II = &Ctx.Idents.get(name);
|
||||
return Ctx.Selectors.getSelector(1, &II);
|
||||
}
|
||||
|
||||
|
@ -1731,7 +1731,7 @@ public:
|
||||
static ImplicitParamDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
ImplicitParamDecl(ASTContext &C, DeclContext *DC, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, QualType Type,
|
||||
const IdentifierInfo *Id, QualType Type,
|
||||
ImplicitParamKind ParamKind)
|
||||
: VarDecl(ImplicitParam, C, DC, IdLoc, IdLoc, Id, Type,
|
||||
/*TInfo=*/nullptr, SC_None) {
|
||||
@ -1765,7 +1765,7 @@ public:
|
||||
|
||||
protected:
|
||||
ParmVarDecl(Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id, QualType T,
|
||||
SourceLocation IdLoc, const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, StorageClass S, Expr *DefArg)
|
||||
: VarDecl(DK, C, DC, StartLoc, IdLoc, Id, T, TInfo, S) {
|
||||
assert(ParmVarDeclBits.HasInheritedDefaultArg == false);
|
||||
@ -1777,10 +1777,10 @@ protected:
|
||||
|
||||
public:
|
||||
static ParmVarDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id,
|
||||
QualType T, TypeSourceInfo *TInfo,
|
||||
StorageClass S, Expr *DefArg);
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, StorageClass S,
|
||||
Expr *DefArg);
|
||||
|
||||
static ParmVarDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
@ -3095,7 +3095,7 @@ class FieldDecl : public DeclaratorDecl, public Mergeable<FieldDecl> {
|
||||
|
||||
protected:
|
||||
FieldDecl(Kind DK, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id, QualType T,
|
||||
SourceLocation IdLoc, const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, Expr *BW, bool Mutable,
|
||||
InClassInitStyle InitStyle)
|
||||
: DeclaratorDecl(DK, DC, IdLoc, Id, T, TInfo, StartLoc), BitField(false),
|
||||
@ -3111,7 +3111,7 @@ public:
|
||||
|
||||
static FieldDecl *Create(const ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, QualType T,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, Expr *BW, bool Mutable,
|
||||
InClassInitStyle InitStyle);
|
||||
|
||||
@ -3332,8 +3332,9 @@ public:
|
||||
friend class ASTDeclReader;
|
||||
|
||||
static IndirectFieldDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation L, IdentifierInfo *Id,
|
||||
QualType T, llvm::MutableArrayRef<NamedDecl *> CH);
|
||||
SourceLocation L, const IdentifierInfo *Id,
|
||||
QualType T,
|
||||
llvm::MutableArrayRef<NamedDecl *> CH);
|
||||
|
||||
static IndirectFieldDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
@ -3381,9 +3382,9 @@ class TypeDecl : public NamedDecl {
|
||||
void anchor() override;
|
||||
|
||||
protected:
|
||||
TypeDecl(Kind DK, DeclContext *DC, SourceLocation L, IdentifierInfo *Id,
|
||||
TypeDecl(Kind DK, DeclContext *DC, SourceLocation L, const IdentifierInfo *Id,
|
||||
SourceLocation StartL = SourceLocation())
|
||||
: NamedDecl(DK, DC, L, Id), LocStart(StartL) {}
|
||||
: NamedDecl(DK, DC, L, Id), LocStart(StartL) {}
|
||||
|
||||
public:
|
||||
// Low-level accessor. If you just want the type defined by this node,
|
||||
@ -3425,7 +3426,7 @@ class TypedefNameDecl : public TypeDecl, public Redeclarable<TypedefNameDecl> {
|
||||
protected:
|
||||
TypedefNameDecl(Kind DK, ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, TypeSourceInfo *TInfo)
|
||||
const IdentifierInfo *Id, TypeSourceInfo *TInfo)
|
||||
: TypeDecl(DK, DC, IdLoc, Id, StartLoc), redeclarable_base(C),
|
||||
MaybeModedTInfo(TInfo, 0) {}
|
||||
|
||||
@ -3512,13 +3513,14 @@ private:
|
||||
/// type specifier.
|
||||
class TypedefDecl : public TypedefNameDecl {
|
||||
TypedefDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id, TypeSourceInfo *TInfo)
|
||||
SourceLocation IdLoc, const IdentifierInfo *Id,
|
||||
TypeSourceInfo *TInfo)
|
||||
: TypedefNameDecl(Typedef, C, DC, StartLoc, IdLoc, Id, TInfo) {}
|
||||
|
||||
public:
|
||||
static TypedefDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, TypeSourceInfo *TInfo);
|
||||
const IdentifierInfo *Id, TypeSourceInfo *TInfo);
|
||||
static TypedefDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
SourceRange getSourceRange() const override LLVM_READONLY;
|
||||
@ -3535,14 +3537,15 @@ class TypeAliasDecl : public TypedefNameDecl {
|
||||
TypeAliasTemplateDecl *Template;
|
||||
|
||||
TypeAliasDecl(ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id, TypeSourceInfo *TInfo)
|
||||
SourceLocation IdLoc, const IdentifierInfo *Id,
|
||||
TypeSourceInfo *TInfo)
|
||||
: TypedefNameDecl(TypeAlias, C, DC, StartLoc, IdLoc, Id, TInfo),
|
||||
Template(nullptr) {}
|
||||
|
||||
public:
|
||||
static TypeAliasDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, TypeSourceInfo *TInfo);
|
||||
const IdentifierInfo *Id, TypeSourceInfo *TInfo);
|
||||
static TypeAliasDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
SourceRange getSourceRange() const override LLVM_READONLY;
|
||||
|
@ -772,7 +772,7 @@ private:
|
||||
// Synthesize ivar for this property
|
||||
ObjCIvarDecl *PropertyIvarDecl = nullptr;
|
||||
|
||||
ObjCPropertyDecl(DeclContext *DC, SourceLocation L, IdentifierInfo *Id,
|
||||
ObjCPropertyDecl(DeclContext *DC, SourceLocation L, const IdentifierInfo *Id,
|
||||
SourceLocation AtLocation, SourceLocation LParenLocation,
|
||||
QualType T, TypeSourceInfo *TSI, PropertyControl propControl)
|
||||
: NamedDecl(ObjCProperty, DC, L, Id), AtLoc(AtLocation),
|
||||
@ -782,10 +782,12 @@ private:
|
||||
PropertyImplementation(propControl) {}
|
||||
|
||||
public:
|
||||
static ObjCPropertyDecl *
|
||||
Create(ASTContext &C, DeclContext *DC, SourceLocation L, IdentifierInfo *Id,
|
||||
SourceLocation AtLocation, SourceLocation LParenLocation, QualType T,
|
||||
TypeSourceInfo *TSI, PropertyControl propControl = None);
|
||||
static ObjCPropertyDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation L, const IdentifierInfo *Id,
|
||||
SourceLocation AtLocation,
|
||||
SourceLocation LParenLocation, QualType T,
|
||||
TypeSourceInfo *TSI,
|
||||
PropertyControl propControl = None);
|
||||
|
||||
static ObjCPropertyDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
@ -952,7 +954,7 @@ class ObjCContainerDecl : public NamedDecl, public DeclContext {
|
||||
void anchor() override;
|
||||
|
||||
public:
|
||||
ObjCContainerDecl(Kind DK, DeclContext *DC, IdentifierInfo *Id,
|
||||
ObjCContainerDecl(Kind DK, DeclContext *DC, const IdentifierInfo *Id,
|
||||
SourceLocation nameLoc, SourceLocation atStartLoc);
|
||||
|
||||
// Iterator access to instance/class properties.
|
||||
@ -1240,7 +1242,7 @@ class ObjCInterfaceDecl : public ObjCContainerDecl
|
||||
llvm::PointerIntPair<DefinitionData *, 1, bool> Data;
|
||||
|
||||
ObjCInterfaceDecl(const ASTContext &C, DeclContext *DC, SourceLocation AtLoc,
|
||||
IdentifierInfo *Id, ObjCTypeParamList *typeParamList,
|
||||
const IdentifierInfo *Id, ObjCTypeParamList *typeParamList,
|
||||
SourceLocation CLoc, ObjCInterfaceDecl *PrevDecl,
|
||||
bool IsInternal);
|
||||
|
||||
@ -1271,13 +1273,11 @@ class ObjCInterfaceDecl : public ObjCContainerDecl
|
||||
}
|
||||
|
||||
public:
|
||||
static ObjCInterfaceDecl *Create(const ASTContext &C, DeclContext *DC,
|
||||
SourceLocation atLoc,
|
||||
IdentifierInfo *Id,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
ObjCInterfaceDecl *PrevDecl,
|
||||
SourceLocation ClassLoc = SourceLocation(),
|
||||
bool isInternal = false);
|
||||
static ObjCInterfaceDecl *
|
||||
Create(const ASTContext &C, DeclContext *DC, SourceLocation atLoc,
|
||||
const IdentifierInfo *Id, ObjCTypeParamList *typeParamList,
|
||||
ObjCInterfaceDecl *PrevDecl,
|
||||
SourceLocation ClassLoc = SourceLocation(), bool isInternal = false);
|
||||
|
||||
static ObjCInterfaceDecl *CreateDeserialized(const ASTContext &C, unsigned ID);
|
||||
|
||||
@ -1338,7 +1338,8 @@ public:
|
||||
ObjCImplementationDecl *getImplementation() const;
|
||||
void setImplementation(ObjCImplementationDecl *ImplD);
|
||||
|
||||
ObjCCategoryDecl *FindCategoryDeclaration(IdentifierInfo *CategoryId) const;
|
||||
ObjCCategoryDecl *
|
||||
FindCategoryDeclaration(const IdentifierInfo *CategoryId) const;
|
||||
|
||||
// Get the local instance/class method declared in a category.
|
||||
ObjCMethodDecl *getCategoryInstanceMethod(Selector Sel) const;
|
||||
@ -1794,9 +1795,9 @@ public:
|
||||
data().CategoryList = category;
|
||||
}
|
||||
|
||||
ObjCPropertyDecl
|
||||
*FindPropertyVisibleInPrimaryClass(IdentifierInfo *PropertyId,
|
||||
ObjCPropertyQueryKind QueryKind) const;
|
||||
ObjCPropertyDecl *
|
||||
FindPropertyVisibleInPrimaryClass(const IdentifierInfo *PropertyId,
|
||||
ObjCPropertyQueryKind QueryKind) const;
|
||||
|
||||
void collectPropertiesToImplement(PropertyMap &PM) const override;
|
||||
|
||||
@ -1954,8 +1955,8 @@ public:
|
||||
|
||||
private:
|
||||
ObjCIvarDecl(ObjCContainerDecl *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id,
|
||||
QualType T, TypeSourceInfo *TInfo, AccessControl ac, Expr *BW,
|
||||
SourceLocation IdLoc, const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, AccessControl ac, Expr *BW,
|
||||
bool synthesized)
|
||||
: FieldDecl(ObjCIvar, DC, StartLoc, IdLoc, Id, T, TInfo, BW,
|
||||
/*Mutable=*/false, /*HasInit=*/ICIS_NoInit),
|
||||
@ -1964,10 +1965,9 @@ private:
|
||||
public:
|
||||
static ObjCIvarDecl *Create(ASTContext &C, ObjCContainerDecl *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo,
|
||||
AccessControl ac, Expr *BW = nullptr,
|
||||
bool synthesized=false);
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, AccessControl ac,
|
||||
Expr *BW = nullptr, bool synthesized = false);
|
||||
|
||||
static ObjCIvarDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
@ -2343,7 +2343,7 @@ class ObjCCategoryDecl : public ObjCContainerDecl {
|
||||
|
||||
ObjCCategoryDecl(DeclContext *DC, SourceLocation AtLoc,
|
||||
SourceLocation ClassNameLoc, SourceLocation CategoryNameLoc,
|
||||
IdentifierInfo *Id, ObjCInterfaceDecl *IDecl,
|
||||
const IdentifierInfo *Id, ObjCInterfaceDecl *IDecl,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
SourceLocation IvarLBraceLoc = SourceLocation(),
|
||||
SourceLocation IvarRBraceLoc = SourceLocation());
|
||||
@ -2354,15 +2354,13 @@ public:
|
||||
friend class ASTDeclReader;
|
||||
friend class ASTDeclWriter;
|
||||
|
||||
static ObjCCategoryDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation AtLoc,
|
||||
SourceLocation ClassNameLoc,
|
||||
SourceLocation CategoryNameLoc,
|
||||
IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *IDecl,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
SourceLocation IvarLBraceLoc=SourceLocation(),
|
||||
SourceLocation IvarRBraceLoc=SourceLocation());
|
||||
static ObjCCategoryDecl *
|
||||
Create(ASTContext &C, DeclContext *DC, SourceLocation AtLoc,
|
||||
SourceLocation ClassNameLoc, SourceLocation CategoryNameLoc,
|
||||
const IdentifierInfo *Id, ObjCInterfaceDecl *IDecl,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
SourceLocation IvarLBraceLoc = SourceLocation(),
|
||||
SourceLocation IvarRBraceLoc = SourceLocation());
|
||||
static ObjCCategoryDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
ObjCInterfaceDecl *getClassInterface() { return ClassInterface; }
|
||||
@ -2472,10 +2470,9 @@ class ObjCImplDecl : public ObjCContainerDecl {
|
||||
void anchor() override;
|
||||
|
||||
protected:
|
||||
ObjCImplDecl(Kind DK, DeclContext *DC,
|
||||
ObjCInterfaceDecl *classInterface,
|
||||
IdentifierInfo *Id,
|
||||
SourceLocation nameLoc, SourceLocation atStartLoc)
|
||||
ObjCImplDecl(Kind DK, DeclContext *DC, ObjCInterfaceDecl *classInterface,
|
||||
const IdentifierInfo *Id, SourceLocation nameLoc,
|
||||
SourceLocation atStartLoc)
|
||||
: ObjCContainerDecl(DK, DC, Id, nameLoc, atStartLoc),
|
||||
ClassInterface(classInterface) {}
|
||||
|
||||
@ -2543,12 +2540,12 @@ class ObjCCategoryImplDecl : public ObjCImplDecl {
|
||||
// Category name location
|
||||
SourceLocation CategoryNameLoc;
|
||||
|
||||
ObjCCategoryImplDecl(DeclContext *DC, IdentifierInfo *Id,
|
||||
ObjCCategoryImplDecl(DeclContext *DC, const IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *classInterface,
|
||||
SourceLocation nameLoc, SourceLocation atStartLoc,
|
||||
SourceLocation CategoryNameLoc)
|
||||
: ObjCImplDecl(ObjCCategoryImpl, DC, classInterface, Id,
|
||||
nameLoc, atStartLoc),
|
||||
: ObjCImplDecl(ObjCCategoryImpl, DC, classInterface, Id, nameLoc,
|
||||
atStartLoc),
|
||||
CategoryNameLoc(CategoryNameLoc) {}
|
||||
|
||||
void anchor() override;
|
||||
@ -2557,12 +2554,10 @@ public:
|
||||
friend class ASTDeclReader;
|
||||
friend class ASTDeclWriter;
|
||||
|
||||
static ObjCCategoryImplDecl *Create(ASTContext &C, DeclContext *DC,
|
||||
IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *classInterface,
|
||||
SourceLocation nameLoc,
|
||||
SourceLocation atStartLoc,
|
||||
SourceLocation CategoryNameLoc);
|
||||
static ObjCCategoryImplDecl *
|
||||
Create(ASTContext &C, DeclContext *DC, const IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *classInterface, SourceLocation nameLoc,
|
||||
SourceLocation atStartLoc, SourceLocation CategoryNameLoc);
|
||||
static ObjCCategoryImplDecl *CreateDeserialized(ASTContext &C, unsigned ID);
|
||||
|
||||
ObjCCategoryDecl *getCategoryDecl() const;
|
||||
|
@ -1389,14 +1389,14 @@ class NonTypeTemplateParmDecl final
|
||||
|
||||
NonTypeTemplateParmDecl(DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P,
|
||||
IdentifierInfo *Id, QualType T,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
bool ParameterPack, TypeSourceInfo *TInfo)
|
||||
: DeclaratorDecl(NonTypeTemplateParm, DC, IdLoc, Id, T, TInfo, StartLoc),
|
||||
TemplateParmPosition(D, P), ParameterPack(ParameterPack) {}
|
||||
|
||||
NonTypeTemplateParmDecl(DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P,
|
||||
IdentifierInfo *Id, QualType T,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo,
|
||||
ArrayRef<QualType> ExpandedTypes,
|
||||
ArrayRef<TypeSourceInfo *> ExpandedTInfos);
|
||||
@ -1404,12 +1404,12 @@ class NonTypeTemplateParmDecl final
|
||||
public:
|
||||
static NonTypeTemplateParmDecl *
|
||||
Create(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, IdentifierInfo *Id,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, const IdentifierInfo *Id,
|
||||
QualType T, bool ParameterPack, TypeSourceInfo *TInfo);
|
||||
|
||||
static NonTypeTemplateParmDecl *
|
||||
Create(const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, IdentifierInfo *Id,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, const IdentifierInfo *Id,
|
||||
QualType T, TypeSourceInfo *TInfo, ArrayRef<QualType> ExpandedTypes,
|
||||
ArrayRef<TypeSourceInfo *> ExpandedTInfos);
|
||||
|
||||
|
@ -2559,7 +2559,7 @@ public:
|
||||
class PseudoDestructorTypeStorage {
|
||||
/// Either the type source information or the name of the type, if
|
||||
/// it couldn't be resolved due to type-dependence.
|
||||
llvm::PointerUnion<TypeSourceInfo *, IdentifierInfo *> Type;
|
||||
llvm::PointerUnion<TypeSourceInfo *, const IdentifierInfo *> Type;
|
||||
|
||||
/// The starting source location of the pseudo-destructor type.
|
||||
SourceLocation Location;
|
||||
@ -2567,7 +2567,7 @@ class PseudoDestructorTypeStorage {
|
||||
public:
|
||||
PseudoDestructorTypeStorage() = default;
|
||||
|
||||
PseudoDestructorTypeStorage(IdentifierInfo *II, SourceLocation Loc)
|
||||
PseudoDestructorTypeStorage(const IdentifierInfo *II, SourceLocation Loc)
|
||||
: Type(II), Location(Loc) {}
|
||||
|
||||
PseudoDestructorTypeStorage(TypeSourceInfo *Info);
|
||||
@ -2576,8 +2576,8 @@ public:
|
||||
return Type.dyn_cast<TypeSourceInfo *>();
|
||||
}
|
||||
|
||||
IdentifierInfo *getIdentifier() const {
|
||||
return Type.dyn_cast<IdentifierInfo *>();
|
||||
const IdentifierInfo *getIdentifier() const {
|
||||
return Type.dyn_cast<const IdentifierInfo *>();
|
||||
}
|
||||
|
||||
SourceLocation getLocation() const { return Location; }
|
||||
@ -2708,7 +2708,7 @@ public:
|
||||
/// In a dependent pseudo-destructor expression for which we do not
|
||||
/// have full type information on the destroyed type, provides the name
|
||||
/// of the destroyed type.
|
||||
IdentifierInfo *getDestroyedTypeIdentifier() const {
|
||||
const IdentifierInfo *getDestroyedTypeIdentifier() const {
|
||||
return DestroyedType.getIdentifier();
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ public:
|
||||
virtual CXXBaseSpecifier *GetExternalCXXBaseSpecifiers(uint64_t Offset);
|
||||
|
||||
/// Update an out-of-date identifier.
|
||||
virtual void updateOutOfDateIdentifier(IdentifierInfo &II) {}
|
||||
virtual void updateOutOfDateIdentifier(const IdentifierInfo &II) {}
|
||||
|
||||
/// Find all declarations with the given name in the given context,
|
||||
/// and add them to the context by calling SetExternalVisibleDeclsForName
|
||||
|
@ -124,7 +124,7 @@ public:
|
||||
/// cannot be resolved.
|
||||
static NestedNameSpecifier *Create(const ASTContext &Context,
|
||||
NestedNameSpecifier *Prefix,
|
||||
IdentifierInfo *II);
|
||||
const IdentifierInfo *II);
|
||||
|
||||
/// Builds a nested name specifier that names a namespace.
|
||||
static NestedNameSpecifier *Create(const ASTContext &Context,
|
||||
@ -134,7 +134,7 @@ public:
|
||||
/// Builds a nested name specifier that names a namespace alias.
|
||||
static NestedNameSpecifier *Create(const ASTContext &Context,
|
||||
NestedNameSpecifier *Prefix,
|
||||
NamespaceAliasDecl *Alias);
|
||||
const NamespaceAliasDecl *Alias);
|
||||
|
||||
/// Builds a nested name specifier that names a type.
|
||||
static NestedNameSpecifier *Create(const ASTContext &Context,
|
||||
@ -148,7 +148,7 @@ public:
|
||||
/// nested name specifier, e.g., in "x->Base::f", the "x" has a dependent
|
||||
/// type.
|
||||
static NestedNameSpecifier *Create(const ASTContext &Context,
|
||||
IdentifierInfo *II);
|
||||
const IdentifierInfo *II);
|
||||
|
||||
/// Returns the nested name specifier representing the global
|
||||
/// scope.
|
||||
|
@ -15,10 +15,10 @@ namespace clang {
|
||||
|
||||
template <typename... IdentifierInfos>
|
||||
static inline Selector getKeywordSelector(ASTContext &Ctx,
|
||||
IdentifierInfos *... IIs) {
|
||||
const IdentifierInfos *...IIs) {
|
||||
static_assert(sizeof...(IdentifierInfos) > 0,
|
||||
"keyword selectors must have at least one argument");
|
||||
SmallVector<IdentifierInfo *, 10> II({&Ctx.Idents.get(IIs)...});
|
||||
SmallVector<const IdentifierInfo *, 10> II({&Ctx.Idents.get(IIs)...});
|
||||
|
||||
return Ctx.Selectors.getSelector(II.size(), &II[0]);
|
||||
}
|
||||
|
@ -913,12 +913,13 @@ class alignas(IdentifierInfoAlignment) MultiKeywordSelector
|
||||
|
||||
public:
|
||||
// Constructor for keyword selectors.
|
||||
MultiKeywordSelector(unsigned nKeys, IdentifierInfo **IIV)
|
||||
MultiKeywordSelector(unsigned nKeys, const IdentifierInfo **IIV)
|
||||
: DeclarationNameExtra(nKeys) {
|
||||
assert((nKeys > 1) && "not a multi-keyword selector");
|
||||
|
||||
// Fill in the trailing keyword array.
|
||||
IdentifierInfo **KeyInfo = reinterpret_cast<IdentifierInfo **>(this + 1);
|
||||
const IdentifierInfo **KeyInfo =
|
||||
reinterpret_cast<const IdentifierInfo **>(this + 1);
|
||||
for (unsigned i = 0; i != nKeys; ++i)
|
||||
KeyInfo[i] = IIV[i];
|
||||
}
|
||||
@ -928,7 +929,7 @@ public:
|
||||
|
||||
using DeclarationNameExtra::getNumArgs;
|
||||
|
||||
using keyword_iterator = IdentifierInfo *const *;
|
||||
using keyword_iterator = const IdentifierInfo *const *;
|
||||
|
||||
keyword_iterator keyword_begin() const {
|
||||
return reinterpret_cast<keyword_iterator>(this + 1);
|
||||
@ -938,7 +939,7 @@ public:
|
||||
return keyword_begin() + getNumArgs();
|
||||
}
|
||||
|
||||
IdentifierInfo *getIdentifierInfoForSlot(unsigned i) const {
|
||||
const IdentifierInfo *getIdentifierInfoForSlot(unsigned i) const {
|
||||
assert(i < getNumArgs() && "getIdentifierInfoForSlot(): illegal index");
|
||||
return keyword_begin()[i];
|
||||
}
|
||||
@ -991,10 +992,10 @@ class Selector {
|
||||
/// Do not reorder or add any arguments to this template
|
||||
/// without thoroughly understanding how tightly coupled these classes are.
|
||||
llvm::PointerIntPair<
|
||||
llvm::PointerUnion<IdentifierInfo *, MultiKeywordSelector *>, 2>
|
||||
llvm::PointerUnion<const IdentifierInfo *, MultiKeywordSelector *>, 2>
|
||||
InfoPtr;
|
||||
|
||||
Selector(IdentifierInfo *II, unsigned nArgs) {
|
||||
Selector(const IdentifierInfo *II, unsigned nArgs) {
|
||||
assert(nArgs < 2 && "nArgs not equal to 0/1");
|
||||
InfoPtr.setPointerAndInt(II, nArgs + 1);
|
||||
}
|
||||
@ -1006,8 +1007,8 @@ class Selector {
|
||||
InfoPtr.setPointerAndInt(SI, MultiArg & 0b11);
|
||||
}
|
||||
|
||||
IdentifierInfo *getAsIdentifierInfo() const {
|
||||
return InfoPtr.getPointer().dyn_cast<IdentifierInfo *>();
|
||||
const IdentifierInfo *getAsIdentifierInfo() const {
|
||||
return InfoPtr.getPointer().dyn_cast<const IdentifierInfo *>();
|
||||
}
|
||||
|
||||
MultiKeywordSelector *getMultiKeywordSelector() const {
|
||||
@ -1075,7 +1076,7 @@ public:
|
||||
///
|
||||
/// \returns the uniqued identifier for this slot, or NULL if this slot has
|
||||
/// no corresponding identifier.
|
||||
IdentifierInfo *getIdentifierInfoForSlot(unsigned argIndex) const;
|
||||
const IdentifierInfo *getIdentifierInfoForSlot(unsigned argIndex) const;
|
||||
|
||||
/// Retrieve the name at a given position in the selector.
|
||||
///
|
||||
@ -1132,13 +1133,13 @@ public:
|
||||
///
|
||||
/// \p NumArgs indicates whether this is a no argument selector "foo", a
|
||||
/// single argument selector "foo:" or multi-argument "foo:bar:".
|
||||
Selector getSelector(unsigned NumArgs, IdentifierInfo **IIV);
|
||||
Selector getSelector(unsigned NumArgs, const IdentifierInfo **IIV);
|
||||
|
||||
Selector getUnarySelector(IdentifierInfo *ID) {
|
||||
Selector getUnarySelector(const IdentifierInfo *ID) {
|
||||
return Selector(ID, 1);
|
||||
}
|
||||
|
||||
Selector getNullarySelector(IdentifierInfo *ID) {
|
||||
Selector getNullarySelector(const IdentifierInfo *ID) {
|
||||
return Selector(ID, 0);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ public:
|
||||
virtual void ReadDefinedMacros() = 0;
|
||||
|
||||
/// Update an out-of-date identifier.
|
||||
virtual void updateOutOfDateIdentifier(IdentifierInfo &II) = 0;
|
||||
virtual void updateOutOfDateIdentifier(const IdentifierInfo &II) = 0;
|
||||
|
||||
/// Return the identifier associated with the given ID number.
|
||||
///
|
||||
|
@ -515,7 +515,7 @@ class ModuleMacro : public llvm::FoldingSetNode {
|
||||
friend class Preprocessor;
|
||||
|
||||
/// The name defined by the macro.
|
||||
IdentifierInfo *II;
|
||||
const IdentifierInfo *II;
|
||||
|
||||
/// The body of the #define, or nullptr if this is a #undef.
|
||||
MacroInfo *Macro;
|
||||
@ -529,7 +529,7 @@ class ModuleMacro : public llvm::FoldingSetNode {
|
||||
/// The number of modules whose macros are directly overridden by this one.
|
||||
unsigned NumOverrides;
|
||||
|
||||
ModuleMacro(Module *OwningModule, IdentifierInfo *II, MacroInfo *Macro,
|
||||
ModuleMacro(Module *OwningModule, const IdentifierInfo *II, MacroInfo *Macro,
|
||||
ArrayRef<ModuleMacro *> Overrides)
|
||||
: II(II), Macro(Macro), OwningModule(OwningModule),
|
||||
NumOverrides(Overrides.size()) {
|
||||
@ -539,7 +539,7 @@ class ModuleMacro : public llvm::FoldingSetNode {
|
||||
|
||||
public:
|
||||
static ModuleMacro *create(Preprocessor &PP, Module *OwningModule,
|
||||
IdentifierInfo *II, MacroInfo *Macro,
|
||||
const IdentifierInfo *II, MacroInfo *Macro,
|
||||
ArrayRef<ModuleMacro *> Overrides);
|
||||
|
||||
void Profile(llvm::FoldingSetNodeID &ID) const {
|
||||
@ -553,7 +553,7 @@ public:
|
||||
}
|
||||
|
||||
/// Get the name of the macro.
|
||||
IdentifierInfo *getName() const { return II; }
|
||||
const IdentifierInfo *getName() const { return II; }
|
||||
|
||||
/// Get the ID of the module that exports this macro.
|
||||
Module *getOwningModule() const { return OwningModule; }
|
||||
|
@ -836,7 +836,7 @@ private:
|
||||
ModuleMacroInfo *getModuleInfo(Preprocessor &PP,
|
||||
const IdentifierInfo *II) const {
|
||||
if (II->isOutOfDate())
|
||||
PP.updateOutOfDateIdentifier(const_cast<IdentifierInfo&>(*II));
|
||||
PP.updateOutOfDateIdentifier(*II);
|
||||
// FIXME: Find a spare bit on IdentifierInfo and store a
|
||||
// HasModuleMacros flag.
|
||||
if (!II->hasMacroDefinition() ||
|
||||
@ -1162,7 +1162,7 @@ private:
|
||||
/// skipped.
|
||||
llvm::DenseMap<const char *, unsigned> RecordedSkippedRanges;
|
||||
|
||||
void updateOutOfDateIdentifier(IdentifierInfo &II) const;
|
||||
void updateOutOfDateIdentifier(const IdentifierInfo &II) const;
|
||||
|
||||
public:
|
||||
Preprocessor(std::shared_ptr<PreprocessorOptions> PPOpts,
|
||||
@ -1432,14 +1432,15 @@ public:
|
||||
MacroDirective *MD);
|
||||
|
||||
/// Register an exported macro for a module and identifier.
|
||||
ModuleMacro *addModuleMacro(Module *Mod, IdentifierInfo *II, MacroInfo *Macro,
|
||||
ModuleMacro *addModuleMacro(Module *Mod, const IdentifierInfo *II,
|
||||
MacroInfo *Macro,
|
||||
ArrayRef<ModuleMacro *> Overrides, bool &IsNew);
|
||||
ModuleMacro *getModuleMacro(Module *Mod, const IdentifierInfo *II);
|
||||
|
||||
/// Get the list of leaf (non-overridden) module macros for a name.
|
||||
ArrayRef<ModuleMacro*> getLeafModuleMacros(const IdentifierInfo *II) const {
|
||||
if (II->isOutOfDate())
|
||||
updateOutOfDateIdentifier(const_cast<IdentifierInfo&>(*II));
|
||||
updateOutOfDateIdentifier(*II);
|
||||
auto I = LeafModuleMacros.find(II);
|
||||
if (I != LeafModuleMacros.end())
|
||||
return I->second;
|
||||
|
@ -329,7 +329,7 @@ class Parser : public CodeCompletionHandler {
|
||||
};
|
||||
|
||||
/// Identifiers which have been declared within a tentative parse.
|
||||
SmallVector<IdentifierInfo *, 8> TentativelyDeclaredIdentifiers;
|
||||
SmallVector<const IdentifierInfo *, 8> TentativelyDeclaredIdentifiers;
|
||||
|
||||
/// Tracker for '<' tokens that might have been intended to be treated as an
|
||||
/// angle bracket instead of a less-than comparison.
|
||||
@ -1927,15 +1927,11 @@ private:
|
||||
bool EnteringContext, IdentifierInfo &II,
|
||||
CXXScopeSpec &SS);
|
||||
|
||||
bool ParseOptionalCXXScopeSpecifier(CXXScopeSpec &SS,
|
||||
ParsedType ObjectType,
|
||||
bool ObjectHasErrors,
|
||||
bool EnteringContext,
|
||||
bool *MayBePseudoDestructor = nullptr,
|
||||
bool IsTypename = false,
|
||||
IdentifierInfo **LastII = nullptr,
|
||||
bool OnlyNamespace = false,
|
||||
bool InUsingDeclaration = false);
|
||||
bool ParseOptionalCXXScopeSpecifier(
|
||||
CXXScopeSpec &SS, ParsedType ObjectType, bool ObjectHasErrors,
|
||||
bool EnteringContext, bool *MayBePseudoDestructor = nullptr,
|
||||
bool IsTypename = false, const IdentifierInfo **LastII = nullptr,
|
||||
bool OnlyNamespace = false, bool InUsingDeclaration = false);
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// C++11 5.1.2: Lambda expressions
|
||||
|
@ -362,7 +362,7 @@ private:
|
||||
QualType BaseType;
|
||||
|
||||
/// The identifiers for Objective-C selector parts.
|
||||
ArrayRef<IdentifierInfo *> SelIdents;
|
||||
ArrayRef<const IdentifierInfo *> SelIdents;
|
||||
|
||||
/// The scope specifier that comes before the completion token e.g.
|
||||
/// "a::b::"
|
||||
@ -378,8 +378,9 @@ public:
|
||||
: CCKind(CCKind), IsUsingDeclaration(false), SelIdents(std::nullopt) {}
|
||||
|
||||
/// Construct a new code-completion context of the given kind.
|
||||
CodeCompletionContext(Kind CCKind, QualType T,
|
||||
ArrayRef<IdentifierInfo *> SelIdents = std::nullopt)
|
||||
CodeCompletionContext(
|
||||
Kind CCKind, QualType T,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents = std::nullopt)
|
||||
: CCKind(CCKind), IsUsingDeclaration(false), SelIdents(SelIdents) {
|
||||
if (CCKind == CCC_DotMemberAccess || CCKind == CCC_ArrowMemberAccess ||
|
||||
CCKind == CCC_ObjCPropertyAccess || CCKind == CCC_ObjCClassMessage ||
|
||||
@ -406,7 +407,7 @@ public:
|
||||
QualType getBaseType() const { return BaseType; }
|
||||
|
||||
/// Retrieve the Objective-C selector identifiers.
|
||||
ArrayRef<IdentifierInfo *> getSelIdents() const { return SelIdents; }
|
||||
ArrayRef<const IdentifierInfo *> getSelIdents() const { return SelIdents; }
|
||||
|
||||
/// Determines whether we want C++ constructors as results within this
|
||||
/// context.
|
||||
|
@ -1049,7 +1049,7 @@ public:
|
||||
union {
|
||||
/// When Kind == IK_Identifier, the parsed identifier, or when
|
||||
/// Kind == IK_UserLiteralId, the identifier suffix.
|
||||
IdentifierInfo *Identifier;
|
||||
const IdentifierInfo *Identifier;
|
||||
|
||||
/// When Kind == IK_OperatorFunctionId, the overloaded operator
|
||||
/// that we parsed.
|
||||
@ -1111,7 +1111,7 @@ public:
|
||||
/// \param IdLoc the location of the parsed identifier.
|
||||
void setIdentifier(const IdentifierInfo *Id, SourceLocation IdLoc) {
|
||||
Kind = UnqualifiedIdKind::IK_Identifier;
|
||||
Identifier = const_cast<IdentifierInfo *>(Id);
|
||||
Identifier = Id;
|
||||
StartLocation = EndLocation = IdLoc;
|
||||
}
|
||||
|
||||
@ -1154,9 +1154,9 @@ public:
|
||||
///
|
||||
/// \param IdLoc the location of the identifier.
|
||||
void setLiteralOperatorId(const IdentifierInfo *Id, SourceLocation OpLoc,
|
||||
SourceLocation IdLoc) {
|
||||
SourceLocation IdLoc) {
|
||||
Kind = UnqualifiedIdKind::IK_LiteralOperatorId;
|
||||
Identifier = const_cast<IdentifierInfo *>(Id);
|
||||
Identifier = Id;
|
||||
StartLocation = OpLoc;
|
||||
EndLocation = IdLoc;
|
||||
}
|
||||
@ -1225,7 +1225,7 @@ public:
|
||||
/// \param Id the identifier.
|
||||
void setImplicitSelfParam(const IdentifierInfo *Id) {
|
||||
Kind = UnqualifiedIdKind::IK_ImplicitSelfParam;
|
||||
Identifier = const_cast<IdentifierInfo *>(Id);
|
||||
Identifier = Id;
|
||||
StartLocation = EndLocation = SourceLocation();
|
||||
}
|
||||
|
||||
@ -1327,7 +1327,7 @@ struct DeclaratorChunk {
|
||||
/// Parameter type lists will have type info (if the actions module provides
|
||||
/// it), but may have null identifier info: e.g. for 'void foo(int X, int)'.
|
||||
struct ParamInfo {
|
||||
IdentifierInfo *Ident;
|
||||
const IdentifierInfo *Ident;
|
||||
SourceLocation IdentLoc;
|
||||
Decl *Param;
|
||||
|
||||
@ -1339,11 +1339,10 @@ struct DeclaratorChunk {
|
||||
std::unique_ptr<CachedTokens> DefaultArgTokens;
|
||||
|
||||
ParamInfo() = default;
|
||||
ParamInfo(IdentifierInfo *ident, SourceLocation iloc,
|
||||
Decl *param,
|
||||
ParamInfo(const IdentifierInfo *ident, SourceLocation iloc, Decl *param,
|
||||
std::unique_ptr<CachedTokens> DefArgTokens = nullptr)
|
||||
: Ident(ident), IdentLoc(iloc), Param(param),
|
||||
DefaultArgTokens(std::move(DefArgTokens)) {}
|
||||
: Ident(ident), IdentLoc(iloc), Param(param),
|
||||
DefaultArgTokens(std::move(DefArgTokens)) {}
|
||||
};
|
||||
|
||||
struct TypeAndRange {
|
||||
@ -2326,7 +2325,7 @@ public:
|
||||
return BindingGroup.isSet();
|
||||
}
|
||||
|
||||
IdentifierInfo *getIdentifier() const {
|
||||
const IdentifierInfo *getIdentifier() const {
|
||||
if (Name.getKind() == UnqualifiedIdKind::IK_Identifier)
|
||||
return Name.Identifier;
|
||||
|
||||
@ -2335,7 +2334,7 @@ public:
|
||||
SourceLocation getIdentifierLoc() const { return Name.StartLocation; }
|
||||
|
||||
/// Set the name of this declarator to be the given identifier.
|
||||
void SetIdentifier(IdentifierInfo *Id, SourceLocation IdLoc) {
|
||||
void SetIdentifier(const IdentifierInfo *Id, SourceLocation IdLoc) {
|
||||
Name.setIdentifier(Id, IdLoc);
|
||||
}
|
||||
|
||||
|
@ -159,7 +159,7 @@ namespace clang {
|
||||
SourceLocation TemplateNameLoc;
|
||||
|
||||
/// FIXME: Temporarily stores the name of a specialization
|
||||
IdentifierInfo *Name;
|
||||
const IdentifierInfo *Name;
|
||||
|
||||
/// FIXME: Temporarily stores the overloaded operator kind.
|
||||
OverloadedOperatorKind Operator;
|
||||
@ -197,7 +197,7 @@ namespace clang {
|
||||
/// appends it to List.
|
||||
static TemplateIdAnnotation *
|
||||
Create(SourceLocation TemplateKWLoc, SourceLocation TemplateNameLoc,
|
||||
IdentifierInfo *Name, OverloadedOperatorKind OperatorKind,
|
||||
const IdentifierInfo *Name, OverloadedOperatorKind OperatorKind,
|
||||
ParsedTemplateTy OpaqueTemplateName, TemplateNameKind TemplateKind,
|
||||
SourceLocation LAngleLoc, SourceLocation RAngleLoc,
|
||||
ArrayRef<ParsedTemplateArgument> TemplateArgs, bool ArgsInvalid,
|
||||
@ -236,7 +236,8 @@ namespace clang {
|
||||
TemplateIdAnnotation(const TemplateIdAnnotation &) = delete;
|
||||
|
||||
TemplateIdAnnotation(SourceLocation TemplateKWLoc,
|
||||
SourceLocation TemplateNameLoc, IdentifierInfo *Name,
|
||||
SourceLocation TemplateNameLoc,
|
||||
const IdentifierInfo *Name,
|
||||
OverloadedOperatorKind OperatorKind,
|
||||
ParsedTemplateTy OpaqueTemplateName,
|
||||
TemplateNameKind TemplateKind,
|
||||
|
@ -568,7 +568,7 @@ public:
|
||||
|
||||
/// Invent a new identifier for parameters of abbreviated templates.
|
||||
IdentifierInfo *
|
||||
InventAbbreviatedTemplateParameterTypeName(IdentifierInfo *ParamName,
|
||||
InventAbbreviatedTemplateParameterTypeName(const IdentifierInfo *ParamName,
|
||||
unsigned Index);
|
||||
|
||||
void emitAndClearUnusedLocalTypedefWarnings();
|
||||
@ -2958,9 +2958,9 @@ public:
|
||||
SourceLocation NameLoc,
|
||||
TypeSourceInfo *TSInfo);
|
||||
ParmVarDecl *CheckParameter(DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation NameLoc, IdentifierInfo *Name,
|
||||
QualType T, TypeSourceInfo *TSInfo,
|
||||
StorageClass SC);
|
||||
SourceLocation NameLoc,
|
||||
const IdentifierInfo *Name, QualType T,
|
||||
TypeSourceInfo *TSInfo, StorageClass SC);
|
||||
|
||||
// Contexts where using non-trivial C union types can be disallowed. This is
|
||||
// passed to err_non_trivial_c_union_in_invalid_context.
|
||||
@ -3365,7 +3365,7 @@ public:
|
||||
/// variable.
|
||||
void DiagnoseUnusedButSetDecl(const VarDecl *VD, DiagReceiverTy DiagReceiver);
|
||||
|
||||
ObjCInterfaceDecl *getObjCInterfaceDecl(IdentifierInfo *&Id,
|
||||
ObjCInterfaceDecl *getObjCInterfaceDecl(const IdentifierInfo *&Id,
|
||||
SourceLocation IdLoc,
|
||||
bool TypoCorrection = false);
|
||||
|
||||
@ -3442,8 +3442,9 @@ public:
|
||||
/// VerifyBitField - verifies that a bit field expression is an ICE and has
|
||||
/// the correct width, and that the field type is valid.
|
||||
/// Returns false on success.
|
||||
ExprResult VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName,
|
||||
QualType FieldTy, bool IsMsStruct, Expr *BitWidth);
|
||||
ExprResult VerifyBitField(SourceLocation FieldLoc,
|
||||
const IdentifierInfo *FieldName, QualType FieldTy,
|
||||
bool IsMsStruct, Expr *BitWidth);
|
||||
|
||||
/// IsValueInFlagEnum - Determine if a value is allowed as part of a flag
|
||||
/// enum. If AllowMask is true, then we also allow the complement of a valid
|
||||
@ -4638,7 +4639,8 @@ public:
|
||||
|
||||
VarDecl *BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id);
|
||||
SourceLocation IdLoc,
|
||||
const IdentifierInfo *Id);
|
||||
|
||||
Decl *ActOnExceptionDeclarator(Scope *S, Declarator &D);
|
||||
|
||||
@ -6555,12 +6557,12 @@ public:
|
||||
|
||||
ParsedType getInheritingConstructorName(CXXScopeSpec &SS,
|
||||
SourceLocation NameLoc,
|
||||
IdentifierInfo &Name);
|
||||
const IdentifierInfo &Name);
|
||||
|
||||
ParsedType getConstructorName(IdentifierInfo &II, SourceLocation NameLoc,
|
||||
Scope *S, CXXScopeSpec &SS,
|
||||
bool EnteringContext);
|
||||
ParsedType getDestructorName(IdentifierInfo &II, SourceLocation NameLoc,
|
||||
ParsedType getConstructorName(const IdentifierInfo &II,
|
||||
SourceLocation NameLoc, Scope *S,
|
||||
CXXScopeSpec &SS, bool EnteringContext);
|
||||
ParsedType getDestructorName(const IdentifierInfo &II, SourceLocation NameLoc,
|
||||
Scope *S, CXXScopeSpec &SS,
|
||||
ParsedType ObjectType, bool EnteringContext);
|
||||
|
||||
@ -6960,7 +6962,7 @@ public:
|
||||
concepts::Requirement *ActOnTypeRequirement(SourceLocation TypenameKWLoc,
|
||||
CXXScopeSpec &SS,
|
||||
SourceLocation NameLoc,
|
||||
IdentifierInfo *TypeName,
|
||||
const IdentifierInfo *TypeName,
|
||||
TemplateIdAnnotation *TemplateId);
|
||||
concepts::Requirement *ActOnCompoundRequirement(Expr *E,
|
||||
SourceLocation NoexceptLoc);
|
||||
@ -9116,7 +9118,7 @@ public:
|
||||
|
||||
TypeResult
|
||||
ActOnTemplateIdType(Scope *S, CXXScopeSpec &SS, SourceLocation TemplateKWLoc,
|
||||
TemplateTy Template, IdentifierInfo *TemplateII,
|
||||
TemplateTy Template, const IdentifierInfo *TemplateII,
|
||||
SourceLocation TemplateIILoc, SourceLocation LAngleLoc,
|
||||
ASTTemplateArgsPtr TemplateArgs, SourceLocation RAngleLoc,
|
||||
bool IsCtorOrDtorName = false, bool IsClassName = false,
|
||||
@ -9457,7 +9459,7 @@ public:
|
||||
TypeResult
|
||||
ActOnTypenameType(Scope *S, SourceLocation TypenameLoc,
|
||||
const CXXScopeSpec &SS, SourceLocation TemplateLoc,
|
||||
TemplateTy TemplateName, IdentifierInfo *TemplateII,
|
||||
TemplateTy TemplateName, const IdentifierInfo *TemplateII,
|
||||
SourceLocation TemplateIILoc, SourceLocation LAngleLoc,
|
||||
ASTTemplateArgsPtr TemplateArgs, SourceLocation RAngleLoc);
|
||||
|
||||
@ -9535,14 +9537,15 @@ public:
|
||||
|
||||
Decl *ActOnConceptDefinition(Scope *S,
|
||||
MultiTemplateParamsArg TemplateParameterLists,
|
||||
IdentifierInfo *Name, SourceLocation NameLoc,
|
||||
Expr *ConstraintExpr);
|
||||
const IdentifierInfo *Name,
|
||||
SourceLocation NameLoc, Expr *ConstraintExpr);
|
||||
|
||||
void CheckConceptRedefinition(ConceptDecl *NewDecl, LookupResult &Previous,
|
||||
bool &AddToScope);
|
||||
|
||||
TypeResult ActOnDependentTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
|
||||
const CXXScopeSpec &SS, IdentifierInfo *Name,
|
||||
const CXXScopeSpec &SS,
|
||||
const IdentifierInfo *Name,
|
||||
SourceLocation TagLoc, SourceLocation NameLoc);
|
||||
|
||||
void MarkAsLateParsedTemplate(FunctionDecl *FD, Decl *FnD,
|
||||
@ -11988,22 +11991,22 @@ public:
|
||||
SkipBodyInfo *SkipBody);
|
||||
|
||||
ObjCCategoryDecl *ActOnStartCategoryInterface(
|
||||
SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName,
|
||||
SourceLocation AtInterfaceLoc, const IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, ObjCTypeParamList *typeParamList,
|
||||
IdentifierInfo *CategoryName, SourceLocation CategoryLoc,
|
||||
const IdentifierInfo *CategoryName, SourceLocation CategoryLoc,
|
||||
Decl *const *ProtoRefs, unsigned NumProtoRefs,
|
||||
const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc,
|
||||
const ParsedAttributesView &AttrList);
|
||||
|
||||
ObjCImplementationDecl *ActOnStartClassImplementation(
|
||||
SourceLocation AtClassImplLoc, IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, IdentifierInfo *SuperClassname,
|
||||
SourceLocation AtClassImplLoc, const IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, const IdentifierInfo *SuperClassname,
|
||||
SourceLocation SuperClassLoc, const ParsedAttributesView &AttrList);
|
||||
|
||||
ObjCCategoryImplDecl *ActOnStartCategoryImplementation(
|
||||
SourceLocation AtCatImplLoc, IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, IdentifierInfo *CatName, SourceLocation CatLoc,
|
||||
const ParsedAttributesView &AttrList);
|
||||
SourceLocation AtCatImplLoc, const IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, const IdentifierInfo *CatName,
|
||||
SourceLocation CatLoc, const ParsedAttributesView &AttrList);
|
||||
|
||||
DeclGroupPtrTy ActOnFinishObjCImplementation(Decl *ObjCImpDecl,
|
||||
ArrayRef<Decl *> Decls);
|
||||
@ -12186,11 +12189,13 @@ public:
|
||||
bool CheckObjCDeclScope(Decl *D);
|
||||
|
||||
void ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart,
|
||||
IdentifierInfo *ClassName, SmallVectorImpl<Decl *> &Decls);
|
||||
const IdentifierInfo *ClassName,
|
||||
SmallVectorImpl<Decl *> &Decls);
|
||||
|
||||
VarDecl *BuildObjCExceptionDecl(TypeSourceInfo *TInfo, QualType ExceptionType,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, bool Invalid = false);
|
||||
const IdentifierInfo *Id,
|
||||
bool Invalid = false);
|
||||
|
||||
Decl *ActOnObjCExceptionDecl(Scope *S, Declarator &D);
|
||||
|
||||
@ -12307,8 +12312,8 @@ public:
|
||||
SourceLocation SuperLoc,
|
||||
QualType SuperType, bool Super);
|
||||
|
||||
ExprResult ActOnClassPropertyRefExpr(IdentifierInfo &receiverName,
|
||||
IdentifierInfo &propertyName,
|
||||
ExprResult ActOnClassPropertyRefExpr(const IdentifierInfo &receiverName,
|
||||
const IdentifierInfo &propertyName,
|
||||
SourceLocation receiverNameLoc,
|
||||
SourceLocation propertyNameLoc);
|
||||
|
||||
@ -12783,18 +12788,18 @@ public:
|
||||
bool IsParameter);
|
||||
void CodeCompleteObjCMessageReceiver(Scope *S);
|
||||
void CodeCompleteObjCSuperMessage(Scope *S, SourceLocation SuperLoc,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression);
|
||||
void CodeCompleteObjCClassMessage(Scope *S, ParsedType Receiver,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression,
|
||||
bool IsSuper = false);
|
||||
void CodeCompleteObjCInstanceMessage(Scope *S, Expr *Receiver,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression,
|
||||
ObjCInterfaceDecl *Super = nullptr);
|
||||
void CodeCompleteObjCInstanceMessage(
|
||||
Scope *S, Expr *Receiver, ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, ObjCInterfaceDecl *Super = nullptr);
|
||||
void CodeCompleteObjCForCollection(Scope *S, DeclGroupPtrTy IterationVar);
|
||||
void CodeCompleteObjCSelector(Scope *S, ArrayRef<IdentifierInfo *> SelIdents);
|
||||
void CodeCompleteObjCSelector(Scope *S,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents);
|
||||
void
|
||||
CodeCompleteObjCProtocolReferences(ArrayRef<IdentifierLocPair> Protocols);
|
||||
void CodeCompleteObjCProtocolDecl(Scope *S);
|
||||
@ -12814,11 +12819,11 @@ public:
|
||||
void CodeCompleteObjCMethodDecl(Scope *S,
|
||||
std::optional<bool> IsInstanceMethod,
|
||||
ParsedType ReturnType);
|
||||
void CodeCompleteObjCMethodDeclSelector(Scope *S, bool IsInstanceMethod,
|
||||
bool AtParameterName,
|
||||
ParsedType ReturnType,
|
||||
ArrayRef<IdentifierInfo *> SelIdents);
|
||||
void CodeCompleteObjCClassPropertyRefExpr(Scope *S, IdentifierInfo &ClassName,
|
||||
void CodeCompleteObjCMethodDeclSelector(
|
||||
Scope *S, bool IsInstanceMethod, bool AtParameterName,
|
||||
ParsedType ReturnType, ArrayRef<const IdentifierInfo *> SelIdents);
|
||||
void CodeCompleteObjCClassPropertyRefExpr(Scope *S,
|
||||
const IdentifierInfo &ClassName,
|
||||
SourceLocation ClassNameLoc,
|
||||
bool IsBaseExprStatement);
|
||||
void CodeCompletePreprocessorDirective(bool InConditional);
|
||||
|
@ -1082,12 +1082,12 @@ private:
|
||||
|
||||
/// The set of lookup results that we have faked in order to support
|
||||
/// merging of partially deserialized decls but that we have not yet removed.
|
||||
llvm::SmallMapVector<IdentifierInfo *, SmallVector<NamedDecl*, 2>, 16>
|
||||
PendingFakeLookupResults;
|
||||
llvm::SmallMapVector<const IdentifierInfo *, SmallVector<NamedDecl *, 2>, 16>
|
||||
PendingFakeLookupResults;
|
||||
|
||||
/// The generation number of each identifier, which keeps track of
|
||||
/// the last time we loaded information about this identifier.
|
||||
llvm::DenseMap<IdentifierInfo *, unsigned> IdentifierGeneration;
|
||||
llvm::DenseMap<const IdentifierInfo *, unsigned> IdentifierGeneration;
|
||||
|
||||
/// Contains declarations and definitions that could be
|
||||
/// "interesting" to the ASTConsumer, when we get that AST consumer.
|
||||
@ -2330,10 +2330,10 @@ public:
|
||||
void ReadDefinedMacros() override;
|
||||
|
||||
/// Update an out-of-date identifier.
|
||||
void updateOutOfDateIdentifier(IdentifierInfo &II) override;
|
||||
void updateOutOfDateIdentifier(const IdentifierInfo &II) override;
|
||||
|
||||
/// Note that this identifier is up-to-date.
|
||||
void markIdentifierUpToDate(IdentifierInfo *II);
|
||||
void markIdentifierUpToDate(const IdentifierInfo *II);
|
||||
|
||||
/// Load all external visible decls in the given DeclContext.
|
||||
void completeVisibleDeclsMap(const DeclContext *DC) override;
|
||||
|
@ -1144,7 +1144,7 @@ static bool IsValidIdentifier(ASTContext &Ctx,
|
||||
return false;
|
||||
std::string NameString = Name;
|
||||
NameString[0] = toLowercase(NameString[0]);
|
||||
IdentifierInfo *II = &Ctx.Idents.get(NameString);
|
||||
const IdentifierInfo *II = &Ctx.Idents.get(NameString);
|
||||
return II->getTokenID() == tok::identifier;
|
||||
}
|
||||
|
||||
@ -1166,7 +1166,7 @@ bool ObjCMigrateASTConsumer::migrateProperty(ASTContext &Ctx,
|
||||
if (OIT_Family != OIT_None)
|
||||
return false;
|
||||
|
||||
IdentifierInfo *getterName = GetterSelector.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *getterName = GetterSelector.getIdentifierInfoForSlot(0);
|
||||
Selector SetterSelector =
|
||||
SelectorTable::constructSetterSelector(PP.getIdentifierTable(),
|
||||
PP.getSelectorTable(),
|
||||
@ -1311,7 +1311,8 @@ void ObjCMigrateASTConsumer::migrateFactoryMethod(ASTContext &Ctx,
|
||||
std::string StringLoweredClassName = LoweredClassName.lower();
|
||||
LoweredClassName = StringLoweredClassName;
|
||||
|
||||
IdentifierInfo *MethodIdName = OM->getSelector().getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *MethodIdName =
|
||||
OM->getSelector().getIdentifierInfoForSlot(0);
|
||||
// Handle method with no name at its first selector slot; e.g. + (id):(int)x.
|
||||
if (!MethodIdName)
|
||||
return;
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
getReturnValueSel = sels.getUnarySelector(&ids.get("getReturnValue"));
|
||||
setReturnValueSel = sels.getUnarySelector(&ids.get("setReturnValue"));
|
||||
|
||||
IdentifierInfo *selIds[2];
|
||||
const IdentifierInfo *selIds[2];
|
||||
selIds[0] = &ids.get("getArgument");
|
||||
selIds[1] = &ids.get("atIndex");
|
||||
getArgumentSel = sels.getSelector(2, selIds);
|
||||
|
@ -6929,16 +6929,13 @@ ASTContext::getCanonicalNestedNameSpecifier(NestedNameSpecifier *NNS) const {
|
||||
// typedef typename T::type T1;
|
||||
// typedef typename T1::type T2;
|
||||
if (const auto *DNT = T->getAs<DependentNameType>())
|
||||
return NestedNameSpecifier::Create(
|
||||
*this, DNT->getQualifier(),
|
||||
const_cast<IdentifierInfo *>(DNT->getIdentifier()));
|
||||
return NestedNameSpecifier::Create(*this, DNT->getQualifier(),
|
||||
DNT->getIdentifier());
|
||||
if (const auto *DTST = T->getAs<DependentTemplateSpecializationType>())
|
||||
return NestedNameSpecifier::Create(*this, DTST->getQualifier(), true,
|
||||
const_cast<Type *>(T));
|
||||
return NestedNameSpecifier::Create(*this, DTST->getQualifier(), true, T);
|
||||
|
||||
// TODO: Set 'Template' parameter to true for other template types.
|
||||
return NestedNameSpecifier::Create(*this, nullptr, false,
|
||||
const_cast<Type *>(T));
|
||||
return NestedNameSpecifier::Create(*this, nullptr, false, T);
|
||||
}
|
||||
|
||||
case NestedNameSpecifier::Global:
|
||||
|
@ -8383,8 +8383,8 @@ ASTNodeImporter::VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E) {
|
||||
return std::move(Err);
|
||||
|
||||
PseudoDestructorTypeStorage Storage;
|
||||
if (IdentifierInfo *FromII = E->getDestroyedTypeIdentifier()) {
|
||||
IdentifierInfo *ToII = Importer.Import(FromII);
|
||||
if (const IdentifierInfo *FromII = E->getDestroyedTypeIdentifier()) {
|
||||
const IdentifierInfo *ToII = Importer.Import(FromII);
|
||||
ExpectedSLoc ToDestroyedTypeLocOrErr = import(E->getDestroyedTypeLoc());
|
||||
if (!ToDestroyedTypeLocOrErr)
|
||||
return ToDestroyedTypeLocOrErr.takeError();
|
||||
@ -10194,7 +10194,7 @@ Expected<Selector> ASTImporter::Import(Selector FromSel) {
|
||||
if (FromSel.isNull())
|
||||
return Selector{};
|
||||
|
||||
SmallVector<IdentifierInfo *, 4> Idents;
|
||||
SmallVector<const IdentifierInfo *, 4> Idents;
|
||||
Idents.push_back(Import(FromSel.getIdentifierInfoForSlot(0)));
|
||||
for (unsigned I = 1, N = FromSel.getNumArgs(); I < N; ++I)
|
||||
Idents.push_back(Import(FromSel.getIdentifierInfoForSlot(I)));
|
||||
|
@ -2913,10 +2913,10 @@ VarDecl::setInstantiationOfStaticDataMember(VarDecl *VD,
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
ParmVarDecl *ParmVarDecl::Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id,
|
||||
QualType T, TypeSourceInfo *TInfo,
|
||||
StorageClass S, Expr *DefArg) {
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, StorageClass S,
|
||||
Expr *DefArg) {
|
||||
return new (C, DC) ParmVarDecl(ParmVar, C, DC, StartLoc, IdLoc, Id, T, TInfo,
|
||||
S, DefArg);
|
||||
}
|
||||
@ -4511,7 +4511,7 @@ unsigned FunctionDecl::getODRHash() {
|
||||
|
||||
FieldDecl *FieldDecl::Create(const ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, QualType T,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, Expr *BW, bool Mutable,
|
||||
InClassInitStyle InitStyle) {
|
||||
return new (C, DC) FieldDecl(Decl::Field, DC, StartLoc, IdLoc, Id, T, TInfo,
|
||||
@ -5438,7 +5438,7 @@ IndirectFieldDecl::IndirectFieldDecl(ASTContext &C, DeclContext *DC,
|
||||
|
||||
IndirectFieldDecl *
|
||||
IndirectFieldDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
|
||||
IdentifierInfo *Id, QualType T,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
llvm::MutableArrayRef<NamedDecl *> CH) {
|
||||
return new (C, DC) IndirectFieldDecl(C, DC, L, Id, T, CH);
|
||||
}
|
||||
@ -5461,7 +5461,8 @@ void TypeDecl::anchor() {}
|
||||
|
||||
TypedefDecl *TypedefDecl::Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
IdentifierInfo *Id, TypeSourceInfo *TInfo) {
|
||||
const IdentifierInfo *Id,
|
||||
TypeSourceInfo *TInfo) {
|
||||
return new (C, DC) TypedefDecl(C, DC, StartLoc, IdLoc, Id, TInfo);
|
||||
}
|
||||
|
||||
@ -5511,7 +5512,8 @@ TypedefDecl *TypedefDecl::CreateDeserialized(ASTContext &C, unsigned ID) {
|
||||
|
||||
TypeAliasDecl *TypeAliasDecl::Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id,
|
||||
SourceLocation IdLoc,
|
||||
const IdentifierInfo *Id,
|
||||
TypeSourceInfo *TInfo) {
|
||||
return new (C, DC) TypeAliasDecl(C, DC, StartLoc, IdLoc, Id, TInfo);
|
||||
}
|
||||
|
@ -66,7 +66,8 @@ void ObjCProtocolList::set(ObjCProtocolDecl* const* InList, unsigned Elts,
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
ObjCContainerDecl::ObjCContainerDecl(Kind DK, DeclContext *DC,
|
||||
IdentifierInfo *Id, SourceLocation nameLoc,
|
||||
const IdentifierInfo *Id,
|
||||
SourceLocation nameLoc,
|
||||
SourceLocation atStartLoc)
|
||||
: NamedDecl(DK, DC, nameLoc, Id), DeclContext(DK) {
|
||||
setAtStartLoc(atStartLoc);
|
||||
@ -378,10 +379,8 @@ SourceLocation ObjCInterfaceDecl::getSuperClassLoc() const {
|
||||
/// FindPropertyVisibleInPrimaryClass - Finds declaration of the property
|
||||
/// with name 'PropertyId' in the primary class; including those in protocols
|
||||
/// (direct or indirect) used by the primary class.
|
||||
ObjCPropertyDecl *
|
||||
ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass(
|
||||
IdentifierInfo *PropertyId,
|
||||
ObjCPropertyQueryKind QueryKind) const {
|
||||
ObjCPropertyDecl *ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass(
|
||||
const IdentifierInfo *PropertyId, ObjCPropertyQueryKind QueryKind) const {
|
||||
// FIXME: Should make sure no callers ever do this.
|
||||
if (!hasDefinition())
|
||||
return nullptr;
|
||||
@ -1539,14 +1538,10 @@ void ObjCTypeParamList::gatherDefaultTypeArgs(
|
||||
// ObjCInterfaceDecl
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
ObjCInterfaceDecl *ObjCInterfaceDecl::Create(const ASTContext &C,
|
||||
DeclContext *DC,
|
||||
SourceLocation atLoc,
|
||||
IdentifierInfo *Id,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
ObjCInterfaceDecl *PrevDecl,
|
||||
SourceLocation ClassLoc,
|
||||
bool isInternal){
|
||||
ObjCInterfaceDecl *ObjCInterfaceDecl::Create(
|
||||
const ASTContext &C, DeclContext *DC, SourceLocation atLoc,
|
||||
const IdentifierInfo *Id, ObjCTypeParamList *typeParamList,
|
||||
ObjCInterfaceDecl *PrevDecl, SourceLocation ClassLoc, bool isInternal) {
|
||||
auto *Result = new (C, DC)
|
||||
ObjCInterfaceDecl(C, DC, atLoc, Id, typeParamList, ClassLoc, PrevDecl,
|
||||
isInternal);
|
||||
@ -1564,12 +1559,10 @@ ObjCInterfaceDecl *ObjCInterfaceDecl::CreateDeserialized(const ASTContext &C,
|
||||
return Result;
|
||||
}
|
||||
|
||||
ObjCInterfaceDecl::ObjCInterfaceDecl(const ASTContext &C, DeclContext *DC,
|
||||
SourceLocation AtLoc, IdentifierInfo *Id,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
SourceLocation CLoc,
|
||||
ObjCInterfaceDecl *PrevDecl,
|
||||
bool IsInternal)
|
||||
ObjCInterfaceDecl::ObjCInterfaceDecl(
|
||||
const ASTContext &C, DeclContext *DC, SourceLocation AtLoc,
|
||||
const IdentifierInfo *Id, ObjCTypeParamList *typeParamList,
|
||||
SourceLocation CLoc, ObjCInterfaceDecl *PrevDecl, bool IsInternal)
|
||||
: ObjCContainerDecl(ObjCInterface, DC, Id, CLoc, AtLoc),
|
||||
redeclarable_base(C) {
|
||||
setPreviousDecl(PrevDecl);
|
||||
@ -1751,8 +1744,8 @@ ObjCIvarDecl *ObjCInterfaceDecl::all_declared_ivar_begin() {
|
||||
/// categories for this class and returns it. Name of the category is passed
|
||||
/// in 'CategoryId'. If category not found, return 0;
|
||||
///
|
||||
ObjCCategoryDecl *
|
||||
ObjCInterfaceDecl::FindCategoryDeclaration(IdentifierInfo *CategoryId) const {
|
||||
ObjCCategoryDecl *ObjCInterfaceDecl::FindCategoryDeclaration(
|
||||
const IdentifierInfo *CategoryId) const {
|
||||
// FIXME: Should make sure no callers ever do this.
|
||||
if (!hasDefinition())
|
||||
return nullptr;
|
||||
@ -1838,10 +1831,10 @@ void ObjCIvarDecl::anchor() {}
|
||||
|
||||
ObjCIvarDecl *ObjCIvarDecl::Create(ASTContext &C, ObjCContainerDecl *DC,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, IdentifierInfo *Id,
|
||||
QualType T, TypeSourceInfo *TInfo,
|
||||
AccessControl ac, Expr *BW,
|
||||
bool synthesized) {
|
||||
SourceLocation IdLoc,
|
||||
const IdentifierInfo *Id, QualType T,
|
||||
TypeSourceInfo *TInfo, AccessControl ac,
|
||||
Expr *BW, bool synthesized) {
|
||||
if (DC) {
|
||||
// Ivar's can only appear in interfaces, implementations (via synthesized
|
||||
// properties), and class extensions (via direct declaration, or synthesized
|
||||
@ -2120,28 +2113,23 @@ void ObjCProtocolDecl::setHasODRHash(bool HasHash) {
|
||||
|
||||
void ObjCCategoryDecl::anchor() {}
|
||||
|
||||
ObjCCategoryDecl::ObjCCategoryDecl(DeclContext *DC, SourceLocation AtLoc,
|
||||
SourceLocation ClassNameLoc,
|
||||
SourceLocation CategoryNameLoc,
|
||||
IdentifierInfo *Id, ObjCInterfaceDecl *IDecl,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
SourceLocation IvarLBraceLoc,
|
||||
SourceLocation IvarRBraceLoc)
|
||||
ObjCCategoryDecl::ObjCCategoryDecl(
|
||||
DeclContext *DC, SourceLocation AtLoc, SourceLocation ClassNameLoc,
|
||||
SourceLocation CategoryNameLoc, const IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *IDecl, ObjCTypeParamList *typeParamList,
|
||||
SourceLocation IvarLBraceLoc, SourceLocation IvarRBraceLoc)
|
||||
: ObjCContainerDecl(ObjCCategory, DC, Id, ClassNameLoc, AtLoc),
|
||||
ClassInterface(IDecl), CategoryNameLoc(CategoryNameLoc),
|
||||
IvarLBraceLoc(IvarLBraceLoc), IvarRBraceLoc(IvarRBraceLoc) {
|
||||
setTypeParamList(typeParamList);
|
||||
}
|
||||
|
||||
ObjCCategoryDecl *ObjCCategoryDecl::Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation AtLoc,
|
||||
SourceLocation ClassNameLoc,
|
||||
SourceLocation CategoryNameLoc,
|
||||
IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *IDecl,
|
||||
ObjCTypeParamList *typeParamList,
|
||||
SourceLocation IvarLBraceLoc,
|
||||
SourceLocation IvarRBraceLoc) {
|
||||
ObjCCategoryDecl *ObjCCategoryDecl::Create(
|
||||
ASTContext &C, DeclContext *DC, SourceLocation AtLoc,
|
||||
SourceLocation ClassNameLoc, SourceLocation CategoryNameLoc,
|
||||
const IdentifierInfo *Id, ObjCInterfaceDecl *IDecl,
|
||||
ObjCTypeParamList *typeParamList, SourceLocation IvarLBraceLoc,
|
||||
SourceLocation IvarRBraceLoc) {
|
||||
auto *CatDecl =
|
||||
new (C, DC) ObjCCategoryDecl(DC, AtLoc, ClassNameLoc, CategoryNameLoc, Id,
|
||||
IDecl, typeParamList, IvarLBraceLoc,
|
||||
@ -2190,13 +2178,10 @@ void ObjCCategoryDecl::setTypeParamList(ObjCTypeParamList *TPL) {
|
||||
|
||||
void ObjCCategoryImplDecl::anchor() {}
|
||||
|
||||
ObjCCategoryImplDecl *
|
||||
ObjCCategoryImplDecl::Create(ASTContext &C, DeclContext *DC,
|
||||
IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *ClassInterface,
|
||||
SourceLocation nameLoc,
|
||||
SourceLocation atStartLoc,
|
||||
SourceLocation CategoryNameLoc) {
|
||||
ObjCCategoryImplDecl *ObjCCategoryImplDecl::Create(
|
||||
ASTContext &C, DeclContext *DC, const IdentifierInfo *Id,
|
||||
ObjCInterfaceDecl *ClassInterface, SourceLocation nameLoc,
|
||||
SourceLocation atStartLoc, SourceLocation CategoryNameLoc) {
|
||||
if (ClassInterface && ClassInterface->hasDefinition())
|
||||
ClassInterface = ClassInterface->getDefinition();
|
||||
return new (C, DC) ObjCCategoryImplDecl(DC, Id, ClassInterface, nameLoc,
|
||||
@ -2365,14 +2350,11 @@ ObjCCompatibleAliasDecl::CreateDeserialized(ASTContext &C, unsigned ID) {
|
||||
|
||||
void ObjCPropertyDecl::anchor() {}
|
||||
|
||||
ObjCPropertyDecl *ObjCPropertyDecl::Create(ASTContext &C, DeclContext *DC,
|
||||
SourceLocation L,
|
||||
IdentifierInfo *Id,
|
||||
SourceLocation AtLoc,
|
||||
SourceLocation LParenLoc,
|
||||
QualType T,
|
||||
TypeSourceInfo *TSI,
|
||||
PropertyControl propControl) {
|
||||
ObjCPropertyDecl *
|
||||
ObjCPropertyDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
|
||||
const IdentifierInfo *Id, SourceLocation AtLoc,
|
||||
SourceLocation LParenLoc, QualType T,
|
||||
TypeSourceInfo *TSI, PropertyControl propControl) {
|
||||
return new (C, DC) ObjCPropertyDecl(DC, L, Id, AtLoc, LParenLoc, T, TSI,
|
||||
propControl);
|
||||
}
|
||||
|
@ -715,7 +715,7 @@ void TemplateTypeParmDecl::setTypeConstraint(
|
||||
|
||||
NonTypeTemplateParmDecl::NonTypeTemplateParmDecl(
|
||||
DeclContext *DC, SourceLocation StartLoc, SourceLocation IdLoc, unsigned D,
|
||||
unsigned P, IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo,
|
||||
unsigned P, const IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo,
|
||||
ArrayRef<QualType> ExpandedTypes, ArrayRef<TypeSourceInfo *> ExpandedTInfos)
|
||||
: DeclaratorDecl(NonTypeTemplateParm, DC, IdLoc, Id, T, TInfo, StartLoc),
|
||||
TemplateParmPosition(D, P), ParameterPack(true),
|
||||
@ -730,12 +730,10 @@ NonTypeTemplateParmDecl::NonTypeTemplateParmDecl(
|
||||
}
|
||||
}
|
||||
|
||||
NonTypeTemplateParmDecl *
|
||||
NonTypeTemplateParmDecl::Create(const ASTContext &C, DeclContext *DC,
|
||||
SourceLocation StartLoc, SourceLocation IdLoc,
|
||||
unsigned D, unsigned P, IdentifierInfo *Id,
|
||||
QualType T, bool ParameterPack,
|
||||
TypeSourceInfo *TInfo) {
|
||||
NonTypeTemplateParmDecl *NonTypeTemplateParmDecl::Create(
|
||||
const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, const IdentifierInfo *Id,
|
||||
QualType T, bool ParameterPack, TypeSourceInfo *TInfo) {
|
||||
AutoType *AT =
|
||||
C.getLangOpts().CPlusPlus20 ? T->getContainedAutoType() : nullptr;
|
||||
return new (C, DC,
|
||||
@ -748,7 +746,7 @@ NonTypeTemplateParmDecl::Create(const ASTContext &C, DeclContext *DC,
|
||||
|
||||
NonTypeTemplateParmDecl *NonTypeTemplateParmDecl::Create(
|
||||
const ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, IdentifierInfo *Id,
|
||||
SourceLocation IdLoc, unsigned D, unsigned P, const IdentifierInfo *Id,
|
||||
QualType T, TypeSourceInfo *TInfo, ArrayRef<QualType> ExpandedTypes,
|
||||
ArrayRef<TypeSourceInfo *> ExpandedTInfos) {
|
||||
AutoType *AT = TInfo->getType()->getContainedAutoType();
|
||||
|
@ -56,10 +56,8 @@ Selector NSAPI::getNSStringSelector(NSStringMethodKind MK) const {
|
||||
&Ctx.Idents.get("initWithUTF8String"));
|
||||
break;
|
||||
case NSStr_stringWithCStringEncoding: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("stringWithCString"),
|
||||
&Ctx.Idents.get("encoding")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("stringWithCString"),
|
||||
&Ctx.Idents.get("encoding")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -93,10 +91,8 @@ Selector NSAPI::getNSArraySelector(NSArrayMethodKind MK) const {
|
||||
Sel = Ctx.Selectors.getUnarySelector(&Ctx.Idents.get("arrayWithObjects"));
|
||||
break;
|
||||
case NSArr_arrayWithObjectsCount: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("arrayWithObjects"),
|
||||
&Ctx.Idents.get("count")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("arrayWithObjects"),
|
||||
&Ctx.Idents.get("count")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -110,10 +106,9 @@ Selector NSAPI::getNSArraySelector(NSArrayMethodKind MK) const {
|
||||
Sel = Ctx.Selectors.getUnarySelector(&Ctx.Idents.get("objectAtIndex"));
|
||||
break;
|
||||
case NSMutableArr_replaceObjectAtIndex: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("replaceObjectAtIndex"),
|
||||
&Ctx.Idents.get("withObject")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("replaceObjectAtIndex"),
|
||||
&Ctx.Idents.get("withObject")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -121,18 +116,14 @@ Selector NSAPI::getNSArraySelector(NSArrayMethodKind MK) const {
|
||||
Sel = Ctx.Selectors.getUnarySelector(&Ctx.Idents.get("addObject"));
|
||||
break;
|
||||
case NSMutableArr_insertObjectAtIndex: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("insertObject"),
|
||||
&Ctx.Idents.get("atIndex")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("insertObject"),
|
||||
&Ctx.Idents.get("atIndex")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSMutableArr_setObjectAtIndexedSubscript: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("atIndexedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"), &Ctx.Idents.get("atIndexedSubscript")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -167,27 +158,21 @@ Selector NSAPI::getNSDictionarySelector(
|
||||
&Ctx.Idents.get("dictionaryWithDictionary"));
|
||||
break;
|
||||
case NSDict_dictionaryWithObjectForKey: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("dictionaryWithObject"),
|
||||
&Ctx.Idents.get("forKey")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("dictionaryWithObject"), &Ctx.Idents.get("forKey")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSDict_dictionaryWithObjectsForKeys: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("dictionaryWithObjects"),
|
||||
&Ctx.Idents.get("forKeys")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("dictionaryWithObjects"), &Ctx.Idents.get("forKeys")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSDict_dictionaryWithObjectsForKeysCount: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("dictionaryWithObjects"),
|
||||
&Ctx.Idents.get("forKeys"),
|
||||
&Ctx.Idents.get("count")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("dictionaryWithObjects"), &Ctx.Idents.get("forKeys"),
|
||||
&Ctx.Idents.get("count")};
|
||||
Sel = Ctx.Selectors.getSelector(3, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -204,10 +189,8 @@ Selector NSAPI::getNSDictionarySelector(
|
||||
&Ctx.Idents.get("initWithObjectsAndKeys"));
|
||||
break;
|
||||
case NSDict_initWithObjectsForKeys: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("initWithObjects"),
|
||||
&Ctx.Idents.get("forKeys")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("initWithObjects"),
|
||||
&Ctx.Idents.get("forKeys")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -215,26 +198,20 @@ Selector NSAPI::getNSDictionarySelector(
|
||||
Sel = Ctx.Selectors.getUnarySelector(&Ctx.Idents.get("objectForKey"));
|
||||
break;
|
||||
case NSMutableDict_setObjectForKey: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("forKey")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("forKey")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSMutableDict_setObjectForKeyedSubscript: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("forKeyedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"), &Ctx.Idents.get("forKeyedSubscript")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSMutableDict_setValueForKey: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setValue"),
|
||||
&Ctx.Idents.get("forKey")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("setValue"),
|
||||
&Ctx.Idents.get("forKey")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -264,34 +241,27 @@ Selector NSAPI::getNSSetSelector(NSSetMethodKind MK) const {
|
||||
Sel = Ctx.Selectors.getUnarySelector(&Ctx.Idents.get("addObject"));
|
||||
break;
|
||||
case NSOrderedSet_insertObjectAtIndex: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("insertObject"),
|
||||
&Ctx.Idents.get("atIndex")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("insertObject"),
|
||||
&Ctx.Idents.get("atIndex")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSOrderedSet_setObjectAtIndex: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("atIndex")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("atIndex")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSOrderedSet_setObjectAtIndexedSubscript: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"),
|
||||
&Ctx.Idents.get("atIndexedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("setObject"), &Ctx.Idents.get("atIndexedSubscript")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
case NSOrderedSet_replaceObjectAtIndexWithObject: {
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("replaceObjectAtIndex"),
|
||||
&Ctx.Idents.get("withObject")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&Ctx.Idents.get("replaceObjectAtIndex"),
|
||||
&Ctx.Idents.get("withObject")};
|
||||
Sel = Ctx.Selectors.getSelector(2, KeyIdents);
|
||||
break;
|
||||
}
|
||||
@ -606,7 +576,7 @@ bool NSAPI::isObjCEnumerator(const Expr *E,
|
||||
Selector NSAPI::getOrInitSelector(ArrayRef<StringRef> Ids,
|
||||
Selector &Sel) const {
|
||||
if (Sel.isNull()) {
|
||||
SmallVector<IdentifierInfo *, 4> Idents;
|
||||
SmallVector<const IdentifierInfo *, 4> Idents;
|
||||
for (ArrayRef<StringRef>::const_iterator
|
||||
I = Ids.begin(), E = Ids.end(); I != E; ++I)
|
||||
Idents.push_back(&Ctx.Idents.get(*I));
|
||||
@ -617,7 +587,7 @@ Selector NSAPI::getOrInitSelector(ArrayRef<StringRef> Ids,
|
||||
|
||||
Selector NSAPI::getOrInitNullarySelector(StringRef Id, Selector &Sel) const {
|
||||
if (Sel.isNull()) {
|
||||
IdentifierInfo *Ident = &Ctx.Idents.get(Id);
|
||||
const IdentifierInfo *Ident = &Ctx.Idents.get(Id);
|
||||
Sel = Ctx.Selectors.getSelector(0, &Ident);
|
||||
}
|
||||
return Sel;
|
||||
|
@ -55,16 +55,16 @@ NestedNameSpecifier::FindOrInsert(const ASTContext &Context,
|
||||
return NNS;
|
||||
}
|
||||
|
||||
NestedNameSpecifier *
|
||||
NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
NestedNameSpecifier *Prefix, IdentifierInfo *II) {
|
||||
NestedNameSpecifier *NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
NestedNameSpecifier *Prefix,
|
||||
const IdentifierInfo *II) {
|
||||
assert(II && "Identifier cannot be NULL");
|
||||
assert((!Prefix || Prefix->isDependent()) && "Prefix must be dependent");
|
||||
|
||||
NestedNameSpecifier Mockup;
|
||||
Mockup.Prefix.setPointer(Prefix);
|
||||
Mockup.Prefix.setInt(StoredIdentifier);
|
||||
Mockup.Specifier = II;
|
||||
Mockup.Specifier = const_cast<IdentifierInfo *>(II);
|
||||
return FindOrInsert(Context, Mockup);
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
NestedNameSpecifier *
|
||||
NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
NestedNameSpecifier *Prefix,
|
||||
NamespaceAliasDecl *Alias) {
|
||||
const NamespaceAliasDecl *Alias) {
|
||||
assert(Alias && "Namespace alias cannot be NULL");
|
||||
assert((!Prefix ||
|
||||
(Prefix->getAsType() == nullptr &&
|
||||
@ -96,7 +96,7 @@ NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
NestedNameSpecifier Mockup;
|
||||
Mockup.Prefix.setPointer(Prefix);
|
||||
Mockup.Prefix.setInt(StoredDecl);
|
||||
Mockup.Specifier = Alias;
|
||||
Mockup.Specifier = const_cast<NamespaceAliasDecl *>(Alias);
|
||||
return FindOrInsert(Context, Mockup);
|
||||
}
|
||||
|
||||
@ -112,13 +112,13 @@ NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
return FindOrInsert(Context, Mockup);
|
||||
}
|
||||
|
||||
NestedNameSpecifier *
|
||||
NestedNameSpecifier::Create(const ASTContext &Context, IdentifierInfo *II) {
|
||||
NestedNameSpecifier *NestedNameSpecifier::Create(const ASTContext &Context,
|
||||
const IdentifierInfo *II) {
|
||||
assert(II && "Identifier cannot be NULL");
|
||||
NestedNameSpecifier Mockup;
|
||||
Mockup.Prefix.setPointer(nullptr);
|
||||
Mockup.Prefix.setInt(StoredIdentifier);
|
||||
Mockup.Specifier = II;
|
||||
Mockup.Specifier = const_cast<IdentifierInfo *>(II);
|
||||
return FindOrInsert(Context, Mockup);
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ static SourceLocation getStandardSelLoc(unsigned Index,
|
||||
assert(Index == 0);
|
||||
if (EndLoc.isInvalid())
|
||||
return SourceLocation();
|
||||
IdentifierInfo *II = Sel.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *II = Sel.getIdentifierInfoForSlot(0);
|
||||
unsigned Len = II ? II->getLength() : 0;
|
||||
return EndLoc.getLocWithOffset(-Len);
|
||||
}
|
||||
@ -34,7 +34,7 @@ static SourceLocation getStandardSelLoc(unsigned Index,
|
||||
assert(Index < NumSelArgs);
|
||||
if (ArgLoc.isInvalid())
|
||||
return SourceLocation();
|
||||
IdentifierInfo *II = Sel.getIdentifierInfoForSlot(Index);
|
||||
const IdentifierInfo *II = Sel.getIdentifierInfoForSlot(Index);
|
||||
unsigned Len = /* selector id */ (II ? II->getLength() : 0) + /* ':' */ 1;
|
||||
if (WithArgSpace)
|
||||
++Len;
|
||||
|
@ -1447,7 +1447,7 @@ void StmtPrinter::VisitOffsetOfExpr(OffsetOfExpr *Node) {
|
||||
continue;
|
||||
|
||||
// Field or identifier node.
|
||||
IdentifierInfo *Id = ON.getFieldName();
|
||||
const IdentifierInfo *Id = ON.getFieldName();
|
||||
if (!Id)
|
||||
continue;
|
||||
|
||||
@ -2348,7 +2348,7 @@ void StmtPrinter::VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E) {
|
||||
E->getQualifier()->print(OS, Policy);
|
||||
OS << "~";
|
||||
|
||||
if (IdentifierInfo *II = E->getDestroyedTypeIdentifier())
|
||||
if (const IdentifierInfo *II = E->getDestroyedTypeIdentifier())
|
||||
OS << II->getName();
|
||||
else
|
||||
E->getDestroyedType().print(OS, Policy);
|
||||
|
@ -61,7 +61,7 @@ namespace {
|
||||
virtual void VisitName(DeclarationName Name, bool TreatAsDecl = false) = 0;
|
||||
|
||||
/// Visit identifiers that are not in Decl's or Type's.
|
||||
virtual void VisitIdentifierInfo(IdentifierInfo *II) = 0;
|
||||
virtual void VisitIdentifierInfo(const IdentifierInfo *II) = 0;
|
||||
|
||||
/// Visit a nested-name-specifier that occurs within an expression
|
||||
/// or statement.
|
||||
@ -163,7 +163,7 @@ namespace {
|
||||
ID.AddPointer(Name.getAsOpaquePtr());
|
||||
}
|
||||
|
||||
void VisitIdentifierInfo(IdentifierInfo *II) override {
|
||||
void VisitIdentifierInfo(const IdentifierInfo *II) override {
|
||||
ID.AddPointer(II);
|
||||
}
|
||||
|
||||
@ -211,7 +211,7 @@ namespace {
|
||||
}
|
||||
Hash.AddDeclarationName(Name, TreatAsDecl);
|
||||
}
|
||||
void VisitIdentifierInfo(IdentifierInfo *II) override {
|
||||
void VisitIdentifierInfo(const IdentifierInfo *II) override {
|
||||
ID.AddBoolean(II);
|
||||
if (II) {
|
||||
Hash.AddIdentifierInfo(II);
|
||||
|
@ -17,7 +17,8 @@
|
||||
|
||||
using namespace clang;
|
||||
|
||||
static bool isSubclass(const ObjCInterfaceDecl *Class, IdentifierInfo *II) {
|
||||
static bool isSubclass(const ObjCInterfaceDecl *Class,
|
||||
const IdentifierInfo *II) {
|
||||
if (!Class)
|
||||
return false;
|
||||
if (Class->getIdentifier() == II)
|
||||
@ -30,7 +31,7 @@ ObjCNoReturn::ObjCNoReturn(ASTContext &C)
|
||||
NSExceptionII(&C.Idents.get("NSException"))
|
||||
{
|
||||
// Generate selectors.
|
||||
SmallVector<IdentifierInfo*, 3> II;
|
||||
SmallVector<const IdentifierInfo *, 3> II;
|
||||
|
||||
// raise:format:
|
||||
II.push_back(&C.Idents.get("raise"));
|
||||
|
@ -541,7 +541,8 @@ unsigned Selector::getNumArgs() const {
|
||||
return SI->getNumArgs();
|
||||
}
|
||||
|
||||
IdentifierInfo *Selector::getIdentifierInfoForSlot(unsigned argIndex) const {
|
||||
const IdentifierInfo *
|
||||
Selector::getIdentifierInfoForSlot(unsigned argIndex) const {
|
||||
if (getIdentifierInfoFlag() < MultiArg) {
|
||||
assert(argIndex == 0 && "illegal keyword index");
|
||||
return getAsIdentifierInfo();
|
||||
@ -553,7 +554,7 @@ IdentifierInfo *Selector::getIdentifierInfoForSlot(unsigned argIndex) const {
|
||||
}
|
||||
|
||||
StringRef Selector::getNameForSlot(unsigned int argIndex) const {
|
||||
IdentifierInfo *II = getIdentifierInfoForSlot(argIndex);
|
||||
const IdentifierInfo *II = getIdentifierInfoForSlot(argIndex);
|
||||
return II ? II->getName() : StringRef();
|
||||
}
|
||||
|
||||
@ -574,7 +575,7 @@ std::string Selector::getAsString() const {
|
||||
return "<null selector>";
|
||||
|
||||
if (getIdentifierInfoFlag() < MultiArg) {
|
||||
IdentifierInfo *II = getAsIdentifierInfo();
|
||||
const IdentifierInfo *II = getAsIdentifierInfo();
|
||||
|
||||
if (getNumArgs() == 0) {
|
||||
assert(II && "If the number of arguments is 0 then II is guaranteed to "
|
||||
@ -608,7 +609,7 @@ static bool startsWithWord(StringRef name, StringRef word) {
|
||||
}
|
||||
|
||||
ObjCMethodFamily Selector::getMethodFamilyImpl(Selector sel) {
|
||||
IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
|
||||
if (!first) return OMF_None;
|
||||
|
||||
StringRef name = first->getName();
|
||||
@ -655,7 +656,7 @@ ObjCMethodFamily Selector::getMethodFamilyImpl(Selector sel) {
|
||||
}
|
||||
|
||||
ObjCInstanceTypeFamily Selector::getInstTypeMethodFamily(Selector sel) {
|
||||
IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
|
||||
if (!first) return OIT_None;
|
||||
|
||||
StringRef name = first->getName();
|
||||
@ -683,7 +684,7 @@ ObjCInstanceTypeFamily Selector::getInstTypeMethodFamily(Selector sel) {
|
||||
}
|
||||
|
||||
ObjCStringFormatFamily Selector::getStringFormatFamilyImpl(Selector sel) {
|
||||
IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *first = sel.getIdentifierInfoForSlot(0);
|
||||
if (!first) return SFF_None;
|
||||
|
||||
StringRef name = first->getName();
|
||||
@ -750,7 +751,8 @@ size_t SelectorTable::getTotalMemory() const {
|
||||
return SelTabImpl.Allocator.getTotalMemory();
|
||||
}
|
||||
|
||||
Selector SelectorTable::getSelector(unsigned nKeys, IdentifierInfo **IIV) {
|
||||
Selector SelectorTable::getSelector(unsigned nKeys,
|
||||
const IdentifierInfo **IIV) {
|
||||
if (nKeys < 2)
|
||||
return Selector(IIV[0], nKeys);
|
||||
|
||||
|
@ -1447,7 +1447,7 @@ llvm::Function *CodeGenFunction::GenerateBlockFunction(
|
||||
selfTy = getContext().getPointerType(getContext().getAddrSpaceQualType(
|
||||
getContext().VoidTy, LangAS::opencl_generic));
|
||||
|
||||
IdentifierInfo *II = &CGM.getContext().Idents.get(".block_descriptor");
|
||||
const IdentifierInfo *II = &CGM.getContext().Idents.get(".block_descriptor");
|
||||
|
||||
ImplicitParamDecl SelfDecl(getContext(), const_cast<BlockDecl *>(blockDecl),
|
||||
SourceLocation(), II, selfTy,
|
||||
@ -2791,7 +2791,7 @@ static void configureBlocksRuntimeObject(CodeGenModule &CGM,
|
||||
auto *GV = cast<llvm::GlobalValue>(C->stripPointerCasts());
|
||||
|
||||
if (CGM.getTarget().getTriple().isOSBinFormatCOFF()) {
|
||||
IdentifierInfo &II = CGM.getContext().Idents.get(C->getName());
|
||||
const IdentifierInfo &II = CGM.getContext().Idents.get(C->getName());
|
||||
TranslationUnitDecl *TUDecl = CGM.getContext().getTranslationUnitDecl();
|
||||
DeclContext *DC = TranslationUnitDecl::castToDeclContext(TUDecl);
|
||||
|
||||
|
@ -361,7 +361,7 @@ void CGNVCUDARuntime::emitDeviceStubBodyNew(CodeGenFunction &CGF,
|
||||
KernelLaunchAPI = KernelLaunchAPI + "_ptsz";
|
||||
}
|
||||
auto LaunchKernelName = addPrefixToName(KernelLaunchAPI);
|
||||
IdentifierInfo &cudaLaunchKernelII =
|
||||
const IdentifierInfo &cudaLaunchKernelII =
|
||||
CGM.getContext().Idents.get(LaunchKernelName);
|
||||
FunctionDecl *cudaLaunchKernelFD = nullptr;
|
||||
for (auto *Result : DC->lookup(&cudaLaunchKernelII)) {
|
||||
|
@ -1384,7 +1384,7 @@ void CodeGenFunction::EmitAndRegisterVariableArrayDimensions(
|
||||
// For each dimension stores its QualType and corresponding
|
||||
// size-expression Value.
|
||||
SmallVector<CodeGenFunction::VlaSizePair, 4> Dimensions;
|
||||
SmallVector<IdentifierInfo *, 4> VLAExprNames;
|
||||
SmallVector<const IdentifierInfo *, 4> VLAExprNames;
|
||||
|
||||
// Break down the array into individual dimensions.
|
||||
QualType Type1D = D.getType();
|
||||
@ -1421,7 +1421,7 @@ void CodeGenFunction::EmitAndRegisterVariableArrayDimensions(
|
||||
MD = llvm::ConstantAsMetadata::get(C);
|
||||
else {
|
||||
// Create an artificial VarDecl to generate debug info for.
|
||||
IdentifierInfo *NameIdent = VLAExprNames[NameIdx++];
|
||||
const IdentifierInfo *NameIdent = VLAExprNames[NameIdx++];
|
||||
auto QT = getContext().getIntTypeForBitwidth(
|
||||
SizeTy->getScalarSizeInBits(), false);
|
||||
auto *ArtificialDecl = VarDecl::Create(
|
||||
|
@ -1789,11 +1789,10 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
|
||||
static const unsigned NumItems = 16;
|
||||
|
||||
// Fetch the countByEnumeratingWithState:objects:count: selector.
|
||||
IdentifierInfo *II[] = {
|
||||
&CGM.getContext().Idents.get("countByEnumeratingWithState"),
|
||||
&CGM.getContext().Idents.get("objects"),
|
||||
&CGM.getContext().Idents.get("count")
|
||||
};
|
||||
const IdentifierInfo *II[] = {
|
||||
&CGM.getContext().Idents.get("countByEnumeratingWithState"),
|
||||
&CGM.getContext().Idents.get("objects"),
|
||||
&CGM.getContext().Idents.get("count")};
|
||||
Selector FastEnumSel =
|
||||
CGM.getContext().Selectors.getSelector(std::size(II), &II[0]);
|
||||
|
||||
@ -2720,7 +2719,7 @@ llvm::Value *CodeGenFunction::EmitObjCMRRAutoreleasePoolPush() {
|
||||
CGObjCRuntime &Runtime = CGM.getObjCRuntime();
|
||||
llvm::Value *Receiver = Runtime.EmitNSAutoreleasePoolClassRef(*this);
|
||||
// [NSAutoreleasePool alloc]
|
||||
IdentifierInfo *II = &CGM.getContext().Idents.get("alloc");
|
||||
const IdentifierInfo *II = &CGM.getContext().Idents.get("alloc");
|
||||
Selector AllocSel = getContext().Selectors.getSelector(0, &II);
|
||||
CallArgList Args;
|
||||
RValue AllocRV =
|
||||
@ -2767,7 +2766,7 @@ llvm::Value *CodeGenFunction::EmitObjCAllocInit(llvm::Value *value,
|
||||
/// Produce the code to do a primitive release.
|
||||
/// [tmp drain];
|
||||
void CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(llvm::Value *Arg) {
|
||||
IdentifierInfo *II = &CGM.getContext().Idents.get("drain");
|
||||
const IdentifierInfo *II = &CGM.getContext().Idents.get("drain");
|
||||
Selector DrainSel = getContext().Selectors.getSelector(0, &II);
|
||||
CallArgList Args;
|
||||
CGM.getObjCRuntime().GenerateMessageSend(*this, ReturnValueSlot(),
|
||||
@ -3715,8 +3714,8 @@ CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(
|
||||
if ((HelperFn = CGM.getAtomicSetterHelperFnMap(Ty)))
|
||||
return HelperFn;
|
||||
|
||||
IdentifierInfo *II
|
||||
= &CGM.getContext().Idents.get("__assign_helper_atomic_property_");
|
||||
const IdentifierInfo *II =
|
||||
&CGM.getContext().Idents.get("__assign_helper_atomic_property_");
|
||||
|
||||
QualType ReturnTy = C.VoidTy;
|
||||
QualType DestTy = C.getPointerType(Ty);
|
||||
@ -3813,7 +3812,7 @@ llvm::Constant *CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(
|
||||
if ((HelperFn = CGM.getAtomicGetterHelperFnMap(Ty)))
|
||||
return HelperFn;
|
||||
|
||||
IdentifierInfo *II =
|
||||
const IdentifierInfo *II =
|
||||
&CGM.getContext().Idents.get("__copy_helper_atomic_property_");
|
||||
|
||||
QualType ReturnTy = C.VoidTy;
|
||||
@ -3907,10 +3906,10 @@ llvm::Constant *CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(
|
||||
llvm::Value *
|
||||
CodeGenFunction::EmitBlockCopyAndAutorelease(llvm::Value *Block, QualType Ty) {
|
||||
// Get selectors for retain/autorelease.
|
||||
IdentifierInfo *CopyID = &getContext().Idents.get("copy");
|
||||
const IdentifierInfo *CopyID = &getContext().Idents.get("copy");
|
||||
Selector CopySelector =
|
||||
getContext().Selectors.getNullarySelector(CopyID);
|
||||
IdentifierInfo *AutoreleaseID = &getContext().Idents.get("autorelease");
|
||||
const IdentifierInfo *AutoreleaseID = &getContext().Idents.get("autorelease");
|
||||
Selector AutoreleaseSelector =
|
||||
getContext().Selectors.getNullarySelector(AutoreleaseID);
|
||||
|
||||
|
@ -1555,12 +1555,12 @@ private:
|
||||
|
||||
// Shamelessly stolen from Analysis/CFRefCount.cpp
|
||||
Selector GetNullarySelector(const char* name) const {
|
||||
IdentifierInfo* II = &CGM.getContext().Idents.get(name);
|
||||
const IdentifierInfo *II = &CGM.getContext().Idents.get(name);
|
||||
return CGM.getContext().Selectors.getSelector(0, &II);
|
||||
}
|
||||
|
||||
Selector GetUnarySelector(const char* name) const {
|
||||
IdentifierInfo* II = &CGM.getContext().Idents.get(name);
|
||||
const IdentifierInfo *II = &CGM.getContext().Idents.get(name);
|
||||
return CGM.getContext().Selectors.getSelector(1, &II);
|
||||
}
|
||||
|
||||
@ -6268,11 +6268,10 @@ bool CGObjCNonFragileABIMac::isVTableDispatchedSelector(Selector Sel) {
|
||||
VTableDispatchMethods.insert(GetUnarySelector("addObject"));
|
||||
|
||||
// "countByEnumeratingWithState:objects:count"
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&CGM.getContext().Idents.get("countByEnumeratingWithState"),
|
||||
&CGM.getContext().Idents.get("objects"),
|
||||
&CGM.getContext().Idents.get("count")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&CGM.getContext().Idents.get("countByEnumeratingWithState"),
|
||||
&CGM.getContext().Idents.get("objects"),
|
||||
&CGM.getContext().Idents.get("count")};
|
||||
VTableDispatchMethods.insert(
|
||||
CGM.getContext().Selectors.getSelector(3, KeyIdents));
|
||||
}
|
||||
|
@ -828,7 +828,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy,
|
||||
// .cxx_destruct, __destroy_helper_block_ and all of their calees at run time.
|
||||
if (SanOpts.has(SanitizerKind::Thread)) {
|
||||
if (const auto *OMD = dyn_cast_or_null<ObjCMethodDecl>(D)) {
|
||||
IdentifierInfo *II = OMD->getSelector().getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *II = OMD->getSelector().getIdentifierInfoForSlot(0);
|
||||
if (OMD->getMethodFamily() == OMF_dealloc ||
|
||||
OMD->getMethodFamily() == OMF_initialize ||
|
||||
(OMD->getSelector().isUnarySelector() && II->isStr(".cxx_destruct"))) {
|
||||
|
@ -6626,7 +6626,7 @@ static bool AllTrivialInitializers(CodeGenModule &CGM,
|
||||
void CodeGenModule::EmitObjCIvarInitializations(ObjCImplementationDecl *D) {
|
||||
// We might need a .cxx_destruct even if we don't have any ivar initializers.
|
||||
if (needsDestructMethod(D)) {
|
||||
IdentifierInfo *II = &getContext().Idents.get(".cxx_destruct");
|
||||
const IdentifierInfo *II = &getContext().Idents.get(".cxx_destruct");
|
||||
Selector cxxSelector = getContext().Selectors.getSelector(0, &II);
|
||||
ObjCMethodDecl *DTORMethod = ObjCMethodDecl::Create(
|
||||
getContext(), D->getLocation(), D->getLocation(), cxxSelector,
|
||||
@ -6646,7 +6646,7 @@ void CodeGenModule::EmitObjCIvarInitializations(ObjCImplementationDecl *D) {
|
||||
AllTrivialInitializers(*this, D))
|
||||
return;
|
||||
|
||||
IdentifierInfo *II = &getContext().Idents.get(".cxx_construct");
|
||||
const IdentifierInfo *II = &getContext().Idents.get(".cxx_construct");
|
||||
Selector cxxSelector = getContext().Selectors.getSelector(0, &II);
|
||||
// The constructor returns 'self'.
|
||||
ObjCMethodDecl *CTORMethod = ObjCMethodDecl::Create(
|
||||
@ -7214,7 +7214,7 @@ void CodeGenModule::EmitStaticExternCAliases() {
|
||||
if (!getTargetCodeGenInfo().shouldEmitStaticExternCAliases())
|
||||
return;
|
||||
for (auto &I : StaticExternCValues) {
|
||||
IdentifierInfo *Name = I.first;
|
||||
const IdentifierInfo *Name = I.first;
|
||||
llvm::GlobalValue *Val = I.second;
|
||||
|
||||
// If Val is null, that implies there were multiple declarations that each
|
||||
|
@ -592,7 +592,7 @@ namespace {
|
||||
}
|
||||
|
||||
bool ImplementationIsNonLazy(const ObjCImplDecl *OD) const {
|
||||
IdentifierInfo* II = &Context->Idents.get("load");
|
||||
const IdentifierInfo *II = &Context->Idents.get("load");
|
||||
Selector LoadSel = Context->Selectors.getSelector(0, &II);
|
||||
return OD->getClassMethod(LoadSel) != nullptr;
|
||||
}
|
||||
|
@ -64,8 +64,7 @@ HeaderFileInfo::getControllingMacro(ExternalPreprocessorSource *External) {
|
||||
if (ControllingMacro->isOutOfDate()) {
|
||||
assert(External && "We must have an external source if we have a "
|
||||
"controlling macro that is out of date.");
|
||||
External->updateOutOfDateIdentifier(
|
||||
*const_cast<IdentifierInfo *>(ControllingMacro));
|
||||
External->updateOutOfDateIdentifier(*ControllingMacro);
|
||||
}
|
||||
return ControllingMacro;
|
||||
}
|
||||
|
@ -257,7 +257,7 @@ LLVM_DUMP_METHOD void MacroDirective::dump() const {
|
||||
}
|
||||
|
||||
ModuleMacro *ModuleMacro::create(Preprocessor &PP, Module *OwningModule,
|
||||
IdentifierInfo *II, MacroInfo *Macro,
|
||||
const IdentifierInfo *II, MacroInfo *Macro,
|
||||
ArrayRef<ModuleMacro *> Overrides) {
|
||||
void *Mem = PP.getPreprocessorAllocator().Allocate(
|
||||
sizeof(ModuleMacro) + sizeof(ModuleMacro *) * Overrides.size(),
|
||||
|
@ -368,8 +368,7 @@ bool Preprocessor::HandleEndOfFile(Token &Result, bool isEndOfMacro) {
|
||||
// Okay, this has a controlling macro, remember in HeaderFileInfo.
|
||||
if (OptionalFileEntryRef FE = CurPPLexer->getFileEntry()) {
|
||||
HeaderInfo.SetFileControllingMacro(*FE, ControllingMacro);
|
||||
if (MacroInfo *MI =
|
||||
getMacroInfo(const_cast<IdentifierInfo*>(ControllingMacro)))
|
||||
if (MacroInfo *MI = getMacroInfo(ControllingMacro))
|
||||
MI->setUsedForHeaderGuard(true);
|
||||
if (const IdentifierInfo *DefinedMacro =
|
||||
CurPPLexer->MIOpt.GetDefinedMacro()) {
|
||||
@ -805,7 +804,7 @@ Module *Preprocessor::LeaveSubmodule(bool ForPragma) {
|
||||
llvm::SmallPtrSet<const IdentifierInfo*, 8> VisitedMacros;
|
||||
for (unsigned I = Info.OuterPendingModuleMacroNames;
|
||||
I != PendingModuleMacroNames.size(); ++I) {
|
||||
auto *II = const_cast<IdentifierInfo*>(PendingModuleMacroNames[I]);
|
||||
const auto *II = PendingModuleMacroNames[I];
|
||||
if (!VisitedMacros.insert(II).second)
|
||||
continue;
|
||||
|
||||
@ -855,8 +854,8 @@ Module *Preprocessor::LeaveSubmodule(bool ForPragma) {
|
||||
// Don't bother creating a module macro if it would represent a #undef
|
||||
// that doesn't override anything.
|
||||
if (Def || !Macro.getOverriddenMacros().empty())
|
||||
addModuleMacro(LeavingMod, II, Def,
|
||||
Macro.getOverriddenMacros(), IsNew);
|
||||
addModuleMacro(LeavingMod, II, Def, Macro.getOverriddenMacros(),
|
||||
IsNew);
|
||||
|
||||
if (!getLangOpts().ModulesLocalVisibility) {
|
||||
// This macro is exposed to the rest of this compilation as a
|
||||
|
@ -129,7 +129,7 @@ void Preprocessor::setLoadedMacroDirective(IdentifierInfo *II,
|
||||
II->setHasMacroDefinition(false);
|
||||
}
|
||||
|
||||
ModuleMacro *Preprocessor::addModuleMacro(Module *Mod, IdentifierInfo *II,
|
||||
ModuleMacro *Preprocessor::addModuleMacro(Module *Mod, const IdentifierInfo *II,
|
||||
MacroInfo *Macro,
|
||||
ArrayRef<ModuleMacro *> Overrides,
|
||||
bool &New) {
|
||||
@ -162,7 +162,7 @@ ModuleMacro *Preprocessor::addModuleMacro(Module *Mod, IdentifierInfo *II,
|
||||
// The new macro is always a leaf macro.
|
||||
LeafMacros.push_back(MM);
|
||||
// The identifier now has defined macros (that may or may not be visible).
|
||||
II->setHasMacroDefinition(true);
|
||||
const_cast<IdentifierInfo *>(II)->setHasMacroDefinition(true);
|
||||
|
||||
New = true;
|
||||
return MM;
|
||||
|
@ -759,7 +759,7 @@ void Preprocessor::HandlePoisonedIdentifier(Token & Identifier) {
|
||||
Diag(Identifier,it->second) << Identifier.getIdentifierInfo();
|
||||
}
|
||||
|
||||
void Preprocessor::updateOutOfDateIdentifier(IdentifierInfo &II) const {
|
||||
void Preprocessor::updateOutOfDateIdentifier(const IdentifierInfo &II) const {
|
||||
assert(II.isOutOfDate() && "not out of date");
|
||||
getExternalSource()->updateOutOfDateIdentifier(II);
|
||||
}
|
||||
|
@ -7700,7 +7700,7 @@ void Parser::ParseParameterDeclarationClause(
|
||||
}
|
||||
|
||||
// Remember this parsed parameter in ParamInfo.
|
||||
IdentifierInfo *ParmII = ParmDeclarator.getIdentifier();
|
||||
const IdentifierInfo *ParmII = ParmDeclarator.getIdentifier();
|
||||
|
||||
// DefArgToks is used when the parsing of default arguments needs
|
||||
// to be delayed.
|
||||
|
@ -616,7 +616,7 @@ bool Parser::ParseUsingDeclarator(DeclaratorContext Context,
|
||||
}
|
||||
|
||||
// Parse nested-name-specifier.
|
||||
IdentifierInfo *LastII = nullptr;
|
||||
const IdentifierInfo *LastII = nullptr;
|
||||
if (ParseOptionalCXXScopeSpecifier(D.SS, /*ObjectType=*/nullptr,
|
||||
/*ObjectHasErrors=*/false,
|
||||
/*EnteringContext=*/false,
|
||||
|
@ -157,7 +157,8 @@ void Parser::CheckForTemplateAndDigraph(Token &Next, ParsedType ObjectType,
|
||||
bool Parser::ParseOptionalCXXScopeSpecifier(
|
||||
CXXScopeSpec &SS, ParsedType ObjectType, bool ObjectHadErrors,
|
||||
bool EnteringContext, bool *MayBePseudoDestructor, bool IsTypename,
|
||||
IdentifierInfo **LastII, bool OnlyNamespace, bool InUsingDeclaration) {
|
||||
const IdentifierInfo **LastII, bool OnlyNamespace,
|
||||
bool InUsingDeclaration) {
|
||||
assert(getLangOpts().CPlusPlus &&
|
||||
"Call sites of this function should be guarded by checking for C++");
|
||||
|
||||
@ -2626,7 +2627,7 @@ bool Parser::ParseUnqualifiedIdTemplateId(
|
||||
// UnqualifiedId.
|
||||
|
||||
// FIXME: Store name for literal operator too.
|
||||
IdentifierInfo *TemplateII =
|
||||
const IdentifierInfo *TemplateII =
|
||||
Id.getKind() == UnqualifiedIdKind::IK_Identifier ? Id.Identifier
|
||||
: nullptr;
|
||||
OverloadedOperatorKind OpKind =
|
||||
|
@ -799,11 +799,11 @@ void Parser::ParseObjCInterfaceDeclList(tok::ObjCKeywordKind contextKey,
|
||||
addedToDeclSpec);
|
||||
|
||||
// Install the property declarator into interfaceDecl.
|
||||
IdentifierInfo *SelName =
|
||||
const IdentifierInfo *SelName =
|
||||
OCDS.getGetterName() ? OCDS.getGetterName() : FD.D.getIdentifier();
|
||||
|
||||
Selector GetterSel = PP.getSelectorTable().getNullarySelector(SelName);
|
||||
IdentifierInfo *SetterName = OCDS.getSetterName();
|
||||
const IdentifierInfo *SetterName = OCDS.getSetterName();
|
||||
Selector SetterSel;
|
||||
if (SetterName)
|
||||
SetterSel = PP.getSelectorTable().getSelector(1, &SetterName);
|
||||
@ -1445,7 +1445,7 @@ Decl *Parser::ParseObjCMethodDecl(SourceLocation mLoc,
|
||||
return Result;
|
||||
}
|
||||
|
||||
SmallVector<IdentifierInfo *, 12> KeyIdents;
|
||||
SmallVector<const IdentifierInfo *, 12> KeyIdents;
|
||||
SmallVector<SourceLocation, 12> KeyLocs;
|
||||
SmallVector<Sema::ObjCArgInfo, 12> ArgInfos;
|
||||
ParseScope PrototypeScope(this, Scope::FunctionPrototypeScope |
|
||||
@ -1541,7 +1541,7 @@ Decl *Parser::ParseObjCMethodDecl(SourceLocation mLoc,
|
||||
Declarator ParmDecl(DS, ParsedAttributesView::none(),
|
||||
DeclaratorContext::Prototype);
|
||||
ParseDeclarator(ParmDecl);
|
||||
IdentifierInfo *ParmII = ParmDecl.getIdentifier();
|
||||
const IdentifierInfo *ParmII = ParmDecl.getIdentifier();
|
||||
Decl *Param = Actions.ActOnParamDeclarator(getCurScope(), ParmDecl);
|
||||
CParamInfo.push_back(DeclaratorChunk::ParamInfo(ParmII,
|
||||
ParmDecl.getIdentifierLoc(),
|
||||
@ -3242,7 +3242,7 @@ Parser::ParseObjCMessageExpressionBody(SourceLocation LBracLoc,
|
||||
SourceLocation Loc;
|
||||
IdentifierInfo *selIdent = ParseObjCSelectorPiece(Loc);
|
||||
|
||||
SmallVector<IdentifierInfo *, 12> KeyIdents;
|
||||
SmallVector<const IdentifierInfo *, 12> KeyIdents;
|
||||
SmallVector<SourceLocation, 12> KeyLocs;
|
||||
ExprVector KeyExprs;
|
||||
|
||||
@ -3642,7 +3642,7 @@ ExprResult Parser::ParseObjCSelectorExpression(SourceLocation AtLoc) {
|
||||
if (Tok.isNot(tok::l_paren))
|
||||
return ExprError(Diag(Tok, diag::err_expected_lparen_after) << "@selector");
|
||||
|
||||
SmallVector<IdentifierInfo *, 12> KeyIdents;
|
||||
SmallVector<const IdentifierInfo *, 12> KeyIdents;
|
||||
SourceLocation sLoc;
|
||||
|
||||
BalancedDelimiterTracker T(*this, tok::l_paren);
|
||||
|
@ -313,7 +313,7 @@ Parser::ParseConceptDefinition(const ParsedTemplateInfo &TemplateInfo,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IdentifierInfo *Id = Result.Identifier;
|
||||
const IdentifierInfo *Id = Result.Identifier;
|
||||
SourceLocation IdLoc = Result.getBeginLoc();
|
||||
|
||||
DiagnoseAndSkipCXX11Attributes();
|
||||
@ -1289,7 +1289,7 @@ bool Parser::AnnotateTemplateIdToken(TemplateTy Template, TemplateNameKind TNK,
|
||||
// later.
|
||||
Tok.setKind(tok::annot_template_id);
|
||||
|
||||
IdentifierInfo *TemplateII =
|
||||
const IdentifierInfo *TemplateII =
|
||||
TemplateName.getKind() == UnqualifiedIdKind::IK_Identifier
|
||||
? TemplateName.Identifier
|
||||
: nullptr;
|
||||
|
@ -854,7 +854,8 @@ StringRef CodeCompletionResult::getOrderedName(std::string &Saved) const {
|
||||
if (IdentifierInfo *Id = Name.getAsIdentifierInfo())
|
||||
return Id->getName();
|
||||
if (Name.isObjCZeroArgSelector())
|
||||
if (IdentifierInfo *Id = Name.getObjCSelector().getIdentifierInfoForSlot(0))
|
||||
if (const IdentifierInfo *Id =
|
||||
Name.getObjCSelector().getIdentifierInfoForSlot(0))
|
||||
return Id->getName();
|
||||
|
||||
Saved = Name.getAsString();
|
||||
|
@ -92,9 +92,8 @@ DarwinSDKInfo *Sema::getDarwinSDKInfoForAvailabilityChecking() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IdentifierInfo *
|
||||
Sema::InventAbbreviatedTemplateParameterTypeName(IdentifierInfo *ParamName,
|
||||
unsigned int Index) {
|
||||
IdentifierInfo *Sema::InventAbbreviatedTemplateParameterTypeName(
|
||||
const IdentifierInfo *ParamName, unsigned int Index) {
|
||||
std::string InventedName;
|
||||
llvm::raw_string_ostream OS(InventedName);
|
||||
|
||||
|
@ -3691,7 +3691,7 @@ CodeCompletionString *CodeCompletionResult::createCodeCompletionStringForDecl(
|
||||
std::string Keyword;
|
||||
if (Idx > StartParameter)
|
||||
Result.AddChunk(CodeCompletionString::CK_HorizontalSpace);
|
||||
if (IdentifierInfo *II = Sel.getIdentifierInfoForSlot(Idx))
|
||||
if (const IdentifierInfo *II = Sel.getIdentifierInfoForSlot(Idx))
|
||||
Keyword += II->getName();
|
||||
Keyword += ":";
|
||||
if (Idx < StartParameter || AllParametersAreInformative)
|
||||
@ -3720,7 +3720,7 @@ CodeCompletionString *CodeCompletionResult::createCodeCompletionStringForDecl(
|
||||
Arg = "(" + formatObjCParamQualifiers((*P)->getObjCDeclQualifier(),
|
||||
ParamType);
|
||||
Arg += ParamType.getAsString(Policy) + ")";
|
||||
if (IdentifierInfo *II = (*P)->getIdentifier())
|
||||
if (const IdentifierInfo *II = (*P)->getIdentifier())
|
||||
if (DeclaringEntity || AllParametersAreInformative)
|
||||
Arg += II->getName();
|
||||
}
|
||||
@ -4500,11 +4500,11 @@ void Sema::CodeCompleteOrdinaryName(Scope *S,
|
||||
Results.data(), Results.size());
|
||||
}
|
||||
|
||||
static void AddClassMessageCompletions(Sema &SemaRef, Scope *S,
|
||||
ParsedType Receiver,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, bool IsSuper,
|
||||
ResultBuilder &Results);
|
||||
static void
|
||||
AddClassMessageCompletions(Sema &SemaRef, Scope *S, ParsedType Receiver,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, bool IsSuper,
|
||||
ResultBuilder &Results);
|
||||
|
||||
void Sema::CodeCompleteDeclSpec(Scope *S, DeclSpec &DS,
|
||||
bool AllowNonIdentifiers,
|
||||
@ -4928,7 +4928,7 @@ void Sema::CodeCompletePostfixExpression(Scope *S, ExprResult E,
|
||||
|
||||
/// The set of properties that have already been added, referenced by
|
||||
/// property name.
|
||||
typedef llvm::SmallPtrSet<IdentifierInfo *, 16> AddedPropertiesSet;
|
||||
typedef llvm::SmallPtrSet<const IdentifierInfo *, 16> AddedPropertiesSet;
|
||||
|
||||
/// Retrieve the container definition, if any?
|
||||
static ObjCContainerDecl *getContainerDef(ObjCContainerDecl *Container) {
|
||||
@ -5090,7 +5090,7 @@ AddObjCProperties(const CodeCompletionContext &CCContext,
|
||||
PrintingPolicy Policy = getCompletionPrintingPolicy(Results.getSema());
|
||||
// Adds a method result
|
||||
const auto AddMethod = [&](const ObjCMethodDecl *M) {
|
||||
IdentifierInfo *Name = M->getSelector().getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *Name = M->getSelector().getIdentifierInfoForSlot(0);
|
||||
if (!Name)
|
||||
return;
|
||||
if (!AddedProperties.insert(Name).second)
|
||||
@ -5859,10 +5859,10 @@ void Sema::CodeCompleteMemberReferenceExpr(Scope *S, Expr *Base,
|
||||
}
|
||||
|
||||
void Sema::CodeCompleteObjCClassPropertyRefExpr(Scope *S,
|
||||
IdentifierInfo &ClassName,
|
||||
const IdentifierInfo &ClassName,
|
||||
SourceLocation ClassNameLoc,
|
||||
bool IsBaseExprStatement) {
|
||||
IdentifierInfo *ClassNamePtr = &ClassName;
|
||||
const IdentifierInfo *ClassNamePtr = &ClassName;
|
||||
ObjCInterfaceDecl *IFace = getObjCInterfaceDecl(ClassNamePtr, ClassNameLoc);
|
||||
if (!IFace)
|
||||
return;
|
||||
@ -7527,7 +7527,7 @@ enum ObjCMethodKind {
|
||||
};
|
||||
|
||||
static bool isAcceptableObjCSelector(Selector Sel, ObjCMethodKind WantKind,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AllowSameLength = true) {
|
||||
unsigned NumSelIdents = SelIdents.size();
|
||||
if (NumSelIdents > Sel.getNumArgs())
|
||||
@ -7554,7 +7554,7 @@ static bool isAcceptableObjCSelector(Selector Sel, ObjCMethodKind WantKind,
|
||||
|
||||
static bool isAcceptableObjCMethod(ObjCMethodDecl *Method,
|
||||
ObjCMethodKind WantKind,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AllowSameLength = true) {
|
||||
return isAcceptableObjCSelector(Method->getSelector(), WantKind, SelIdents,
|
||||
AllowSameLength);
|
||||
@ -7586,7 +7586,7 @@ typedef llvm::SmallPtrSet<Selector, 16> VisitedSelectorSet;
|
||||
/// \param Results the structure into which we'll add results.
|
||||
static void AddObjCMethods(ObjCContainerDecl *Container,
|
||||
bool WantInstanceMethods, ObjCMethodKind WantKind,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
DeclContext *CurContext,
|
||||
VisitedSelectorSet &Selectors, bool AllowSameLength,
|
||||
ResultBuilder &Results, bool InOriginalClass = true,
|
||||
@ -7819,7 +7819,7 @@ static ObjCInterfaceDecl *GetAssumedMessageSendExprType(Expr *E) {
|
||||
if (Sel.isNull())
|
||||
return nullptr;
|
||||
|
||||
IdentifierInfo *Id = Sel.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *Id = Sel.getIdentifierInfoForSlot(0);
|
||||
if (!Id)
|
||||
return nullptr;
|
||||
|
||||
@ -7895,7 +7895,7 @@ static ObjCInterfaceDecl *GetAssumedMessageSendExprType(Expr *E) {
|
||||
/// this "super" completion. If NULL, no completion was added.
|
||||
static ObjCMethodDecl *
|
||||
AddSuperSendCompletion(Sema &S, bool NeedSuperKeyword,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
ResultBuilder &Results) {
|
||||
ObjCMethodDecl *CurMethod = S.getCurMethodDecl();
|
||||
if (!CurMethod)
|
||||
@ -8032,9 +8032,9 @@ void Sema::CodeCompleteObjCMessageReceiver(Scope *S) {
|
||||
Results.data(), Results.size());
|
||||
}
|
||||
|
||||
void Sema::CodeCompleteObjCSuperMessage(Scope *S, SourceLocation SuperLoc,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression) {
|
||||
void Sema::CodeCompleteObjCSuperMessage(
|
||||
Scope *S, SourceLocation SuperLoc,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents, bool AtArgumentExpression) {
|
||||
ObjCInterfaceDecl *CDecl = nullptr;
|
||||
if (ObjCMethodDecl *CurMethod = getCurMethodDecl()) {
|
||||
// Figure out which interface we're in.
|
||||
@ -8059,7 +8059,7 @@ void Sema::CodeCompleteObjCSuperMessage(Scope *S, SourceLocation SuperLoc,
|
||||
} else {
|
||||
// "super" may be the name of a type or variable. Figure out which
|
||||
// it is.
|
||||
IdentifierInfo *Super = getSuperIdentifier();
|
||||
const IdentifierInfo *Super = getSuperIdentifier();
|
||||
NamedDecl *ND = LookupSingleName(S, Super, SuperLoc, LookupOrdinaryName);
|
||||
if ((CDecl = dyn_cast_or_null<ObjCInterfaceDecl>(ND))) {
|
||||
// "super" names an interface. Use it.
|
||||
@ -8127,11 +8127,11 @@ static QualType getPreferredArgumentTypeForMessageSend(ResultBuilder &Results,
|
||||
return PreferredType;
|
||||
}
|
||||
|
||||
static void AddClassMessageCompletions(Sema &SemaRef, Scope *S,
|
||||
ParsedType Receiver,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, bool IsSuper,
|
||||
ResultBuilder &Results) {
|
||||
static void
|
||||
AddClassMessageCompletions(Sema &SemaRef, Scope *S, ParsedType Receiver,
|
||||
ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, bool IsSuper,
|
||||
ResultBuilder &Results) {
|
||||
typedef CodeCompletionResult Result;
|
||||
ObjCInterfaceDecl *CDecl = nullptr;
|
||||
|
||||
@ -8202,10 +8202,9 @@ static void AddClassMessageCompletions(Sema &SemaRef, Scope *S,
|
||||
Results.ExitScope();
|
||||
}
|
||||
|
||||
void Sema::CodeCompleteObjCClassMessage(Scope *S, ParsedType Receiver,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression,
|
||||
bool IsSuper) {
|
||||
void Sema::CodeCompleteObjCClassMessage(
|
||||
Scope *S, ParsedType Receiver, ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, bool IsSuper) {
|
||||
|
||||
QualType T = this->GetTypeFromParser(Receiver);
|
||||
|
||||
@ -8237,10 +8236,9 @@ void Sema::CodeCompleteObjCClassMessage(Scope *S, ParsedType Receiver,
|
||||
Results.data(), Results.size());
|
||||
}
|
||||
|
||||
void Sema::CodeCompleteObjCInstanceMessage(Scope *S, Expr *Receiver,
|
||||
ArrayRef<IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression,
|
||||
ObjCInterfaceDecl *Super) {
|
||||
void Sema::CodeCompleteObjCInstanceMessage(
|
||||
Scope *S, Expr *Receiver, ArrayRef<const IdentifierInfo *> SelIdents,
|
||||
bool AtArgumentExpression, ObjCInterfaceDecl *Super) {
|
||||
typedef CodeCompletionResult Result;
|
||||
|
||||
Expr *RecExpr = static_cast<Expr *>(Receiver);
|
||||
@ -8410,8 +8408,8 @@ void Sema::CodeCompleteObjCForCollection(Scope *S,
|
||||
CodeCompleteExpression(S, Data);
|
||||
}
|
||||
|
||||
void Sema::CodeCompleteObjCSelector(Scope *S,
|
||||
ArrayRef<IdentifierInfo *> SelIdents) {
|
||||
void Sema::CodeCompleteObjCSelector(
|
||||
Scope *S, ArrayRef<const IdentifierInfo *> SelIdents) {
|
||||
// If we have an external source, load the entire class method
|
||||
// pool from the AST file.
|
||||
if (ExternalSource) {
|
||||
@ -9166,8 +9164,8 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// Add -(void)getKey:(type **)buffer range:(NSRange)inRange
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("get") + UpperKey).str();
|
||||
IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName),
|
||||
&Context.Idents.get("range")};
|
||||
const IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName),
|
||||
&Context.Idents.get("range")};
|
||||
|
||||
if (KnownSelectors.insert(Selectors.getSelector(2, SelectorIds)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9198,8 +9196,8 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// - (void)insertObject:(type *)object inKeyAtIndex:(NSUInteger)index
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("in") + UpperKey + "AtIndex").str();
|
||||
IdentifierInfo *SelectorIds[2] = {&Context.Idents.get("insertObject"),
|
||||
&Context.Idents.get(SelectorName)};
|
||||
const IdentifierInfo *SelectorIds[2] = {&Context.Idents.get("insertObject"),
|
||||
&Context.Idents.get(SelectorName)};
|
||||
|
||||
if (KnownSelectors.insert(Selectors.getSelector(2, SelectorIds)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9228,8 +9226,8 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// - (void)insertKey:(NSArray *)array atIndexes:(NSIndexSet *)indexes
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("insert") + UpperKey).str();
|
||||
IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName),
|
||||
&Context.Idents.get("atIndexes")};
|
||||
const IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName),
|
||||
&Context.Idents.get("atIndexes")};
|
||||
|
||||
if (KnownSelectors.insert(Selectors.getSelector(2, SelectorIds)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9258,7 +9256,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName =
|
||||
(Twine("removeObjectFrom") + UpperKey + "AtIndex").str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9279,7 +9277,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// -(void)removeKeyAtIndexes:(NSIndexSet *)indexes
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("remove") + UpperKey + "AtIndexes").str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9301,8 +9299,8 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName =
|
||||
(Twine("replaceObjectIn") + UpperKey + "AtIndex").str();
|
||||
IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName),
|
||||
&Context.Idents.get("withObject")};
|
||||
const IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName),
|
||||
&Context.Idents.get("withObject")};
|
||||
|
||||
if (KnownSelectors.insert(Selectors.getSelector(2, SelectorIds)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9332,8 +9330,8 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
std::string SelectorName1 =
|
||||
(Twine("replace") + UpperKey + "AtIndexes").str();
|
||||
std::string SelectorName2 = (Twine("with") + UpperKey).str();
|
||||
IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName1),
|
||||
&Context.Idents.get(SelectorName2)};
|
||||
const IdentifierInfo *SelectorIds[2] = {&Context.Idents.get(SelectorName1),
|
||||
&Context.Idents.get(SelectorName2)};
|
||||
|
||||
if (KnownSelectors.insert(Selectors.getSelector(2, SelectorIds)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9368,7 +9366,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
->getInterfaceDecl()
|
||||
->getName() == "NSEnumerator"))) {
|
||||
std::string SelectorName = (Twine("enumeratorOf") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getNullarySelector(SelectorId))
|
||||
.second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9387,7 +9385,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
if (IsInstanceMethod &&
|
||||
(ReturnType.isNull() || ReturnType->isObjCObjectPointerType())) {
|
||||
std::string SelectorName = (Twine("memberOf") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9417,7 +9415,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName =
|
||||
(Twine("add") + UpperKey + Twine("Object")).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9439,7 +9437,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// - (void)addKey:(NSSet *)objects
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("add") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9461,7 +9459,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName =
|
||||
(Twine("remove") + UpperKey + Twine("Object")).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9483,7 +9481,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// - (void)removeKey:(NSSet *)objects
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("remove") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9504,7 +9502,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
// - (void)intersectKey:(NSSet *)objects
|
||||
if (IsInstanceMethod && ReturnTypeMatchesVoid) {
|
||||
std::string SelectorName = (Twine("intersect") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getUnarySelector(SelectorId)).second) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
@ -9533,7 +9531,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
->getName() == "NSSet"))) {
|
||||
std::string SelectorName =
|
||||
(Twine("keyPathsForValuesAffecting") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getNullarySelector(SelectorId))
|
||||
.second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9554,7 +9552,7 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
||||
ReturnType->isBooleanType())) {
|
||||
std::string SelectorName =
|
||||
(Twine("automaticallyNotifiesObserversOf") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
const IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getNullarySelector(SelectorId))
|
||||
.second) {
|
||||
if (ReturnType.isNull()) {
|
||||
@ -9749,7 +9747,7 @@ void Sema::CodeCompleteObjCMethodDecl(Scope *S,
|
||||
|
||||
void Sema::CodeCompleteObjCMethodDeclSelector(
|
||||
Scope *S, bool IsInstanceMethod, bool AtParameterName, ParsedType ReturnTy,
|
||||
ArrayRef<IdentifierInfo *> SelIdents) {
|
||||
ArrayRef<const IdentifierInfo *> SelIdents) {
|
||||
// If we have an external source, load the entire class method
|
||||
// pool from the AST file.
|
||||
if (ExternalSource) {
|
||||
|
@ -2318,7 +2318,7 @@ void Sema::ActOnPopScope(SourceLocation Loc, Scope *S) {
|
||||
///
|
||||
/// \returns The declaration of the named Objective-C class, or NULL if the
|
||||
/// class could not be found.
|
||||
ObjCInterfaceDecl *Sema::getObjCInterfaceDecl(IdentifierInfo *&Id,
|
||||
ObjCInterfaceDecl *Sema::getObjCInterfaceDecl(const IdentifierInfo *&Id,
|
||||
SourceLocation IdLoc,
|
||||
bool DoTypoCorrection) {
|
||||
// The third "scope" argument is 0 since we aren't enabling lazy built-in
|
||||
@ -15307,7 +15307,7 @@ Decl *Sema::ActOnParamDeclarator(Scope *S, Declarator &D,
|
||||
QualType parmDeclType = TInfo->getType();
|
||||
|
||||
// Check for redeclaration of parameters, e.g. int foo(int x, int x);
|
||||
IdentifierInfo *II = D.getIdentifier();
|
||||
const IdentifierInfo *II = D.getIdentifier();
|
||||
if (II) {
|
||||
LookupResult R(*this, II, D.getIdentifierLoc(), LookupOrdinaryName,
|
||||
ForVisibleRedeclaration);
|
||||
@ -15459,9 +15459,9 @@ QualType Sema::AdjustParameterTypeForObjCAutoRefCount(QualType T,
|
||||
}
|
||||
|
||||
ParmVarDecl *Sema::CheckParameter(DeclContext *DC, SourceLocation StartLoc,
|
||||
SourceLocation NameLoc, IdentifierInfo *Name,
|
||||
QualType T, TypeSourceInfo *TSInfo,
|
||||
StorageClass SC) {
|
||||
SourceLocation NameLoc,
|
||||
const IdentifierInfo *Name, QualType T,
|
||||
TypeSourceInfo *TSInfo, StorageClass SC) {
|
||||
// In ARC, infer a lifetime qualifier for appropriate parameter types.
|
||||
if (getLangOpts().ObjCAutoRefCount &&
|
||||
T.getObjCLifetime() == Qualifiers::OCL_None &&
|
||||
@ -18551,8 +18551,9 @@ void Sema::ActOnTagDefinitionError(Scope *S, Decl *TagD) {
|
||||
|
||||
// Note that FieldName may be null for anonymous bitfields.
|
||||
ExprResult Sema::VerifyBitField(SourceLocation FieldLoc,
|
||||
IdentifierInfo *FieldName, QualType FieldTy,
|
||||
bool IsMsStruct, Expr *BitWidth) {
|
||||
const IdentifierInfo *FieldName,
|
||||
QualType FieldTy, bool IsMsStruct,
|
||||
Expr *BitWidth) {
|
||||
assert(BitWidth);
|
||||
if (BitWidth->containsErrors())
|
||||
return ExprError();
|
||||
@ -18661,7 +18662,7 @@ FieldDecl *Sema::HandleField(Scope *S, RecordDecl *Record,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IdentifierInfo *II = D.getIdentifier();
|
||||
const IdentifierInfo *II = D.getIdentifier();
|
||||
SourceLocation Loc = DeclStart;
|
||||
if (II) Loc = D.getIdentifierLoc();
|
||||
|
||||
@ -18762,7 +18763,7 @@ FieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T,
|
||||
SourceLocation TSSL,
|
||||
AccessSpecifier AS, NamedDecl *PrevDecl,
|
||||
Declarator *D) {
|
||||
IdentifierInfo *II = Name.getAsIdentifierInfo();
|
||||
const IdentifierInfo *II = Name.getAsIdentifierInfo();
|
||||
bool InvalidDecl = false;
|
||||
if (D) InvalidDecl = D->isInvalidType();
|
||||
|
||||
@ -19022,7 +19023,7 @@ TranslateIvarVisibility(tok::ObjCKeywordKind ivarVisibility) {
|
||||
Decl *Sema::ActOnIvar(Scope *S, SourceLocation DeclStart, Declarator &D,
|
||||
Expr *BitWidth, tok::ObjCKeywordKind Visibility) {
|
||||
|
||||
IdentifierInfo *II = D.getIdentifier();
|
||||
const IdentifierInfo *II = D.getIdentifier();
|
||||
SourceLocation Loc = DeclStart;
|
||||
if (II) Loc = D.getIdentifierLoc();
|
||||
|
||||
|
@ -16913,11 +16913,10 @@ Decl *Sema::ActOnEmptyDeclaration(Scope *S,
|
||||
/// Perform semantic analysis for the variable declaration that
|
||||
/// occurs within a C++ catch clause, returning the newly-created
|
||||
/// variable.
|
||||
VarDecl *Sema::BuildExceptionDeclaration(Scope *S,
|
||||
TypeSourceInfo *TInfo,
|
||||
VarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation Loc,
|
||||
IdentifierInfo *Name) {
|
||||
const IdentifierInfo *Name) {
|
||||
bool Invalid = false;
|
||||
QualType ExDeclType = TInfo->getType();
|
||||
|
||||
@ -17062,7 +17061,7 @@ Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) {
|
||||
Invalid = true;
|
||||
}
|
||||
|
||||
IdentifierInfo *II = D.getIdentifier();
|
||||
const IdentifierInfo *II = D.getIdentifier();
|
||||
if (NamedDecl *PrevDecl = LookupSingleName(S, II, D.getIdentifierLoc(),
|
||||
LookupOrdinaryName,
|
||||
ForVisibleRedeclaration)) {
|
||||
@ -19158,7 +19157,7 @@ MSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record,
|
||||
InClassInitStyle InitStyle,
|
||||
AccessSpecifier AS,
|
||||
const ParsedAttr &MSPropertyAttr) {
|
||||
IdentifierInfo *II = D.getIdentifier();
|
||||
const IdentifierInfo *II = D.getIdentifier();
|
||||
if (!II) {
|
||||
Diag(DeclStart, diag::err_anonymous_property);
|
||||
return nullptr;
|
||||
|
@ -1818,9 +1818,9 @@ Sema::ActOnForwardProtocolDeclaration(SourceLocation AtProtocolLoc,
|
||||
}
|
||||
|
||||
ObjCCategoryDecl *Sema::ActOnStartCategoryInterface(
|
||||
SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName,
|
||||
SourceLocation AtInterfaceLoc, const IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, ObjCTypeParamList *typeParamList,
|
||||
IdentifierInfo *CategoryName, SourceLocation CategoryLoc,
|
||||
const IdentifierInfo *CategoryName, SourceLocation CategoryLoc,
|
||||
Decl *const *ProtoRefs, unsigned NumProtoRefs,
|
||||
const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc,
|
||||
const ParsedAttributesView &AttrList) {
|
||||
@ -1916,9 +1916,9 @@ ObjCCategoryDecl *Sema::ActOnStartCategoryInterface(
|
||||
/// category implementation declaration and build an ObjCCategoryImplDecl
|
||||
/// object.
|
||||
ObjCCategoryImplDecl *Sema::ActOnStartCategoryImplementation(
|
||||
SourceLocation AtCatImplLoc, IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, IdentifierInfo *CatName, SourceLocation CatLoc,
|
||||
const ParsedAttributesView &Attrs) {
|
||||
SourceLocation AtCatImplLoc, const IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, const IdentifierInfo *CatName,
|
||||
SourceLocation CatLoc, const ParsedAttributesView &Attrs) {
|
||||
ObjCInterfaceDecl *IDecl = getObjCInterfaceDecl(ClassName, ClassLoc, true);
|
||||
ObjCCategoryDecl *CatIDecl = nullptr;
|
||||
if (IDecl && IDecl->hasDefinition()) {
|
||||
@ -1982,8 +1982,8 @@ ObjCCategoryImplDecl *Sema::ActOnStartCategoryImplementation(
|
||||
}
|
||||
|
||||
ObjCImplementationDecl *Sema::ActOnStartClassImplementation(
|
||||
SourceLocation AtClassImplLoc, IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, IdentifierInfo *SuperClassname,
|
||||
SourceLocation AtClassImplLoc, const IdentifierInfo *ClassName,
|
||||
SourceLocation ClassLoc, const IdentifierInfo *SuperClassname,
|
||||
SourceLocation SuperClassLoc, const ParsedAttributesView &Attrs) {
|
||||
ObjCInterfaceDecl *IDecl = nullptr;
|
||||
// Check for another declaration kind with the same name.
|
||||
@ -2751,7 +2751,7 @@ static void CheckProtocolMethodDefs(
|
||||
// implemented in the class, we should not issue "Method definition not
|
||||
// found" warnings.
|
||||
// FIXME: Use a general GetUnarySelector method for this.
|
||||
IdentifierInfo* II = &S.Context.Idents.get("forwardInvocation");
|
||||
const IdentifierInfo *II = &S.Context.Idents.get("forwardInvocation");
|
||||
Selector fISelector = S.Context.Selectors.getSelector(1, &II);
|
||||
if (InsMap.count(fISelector))
|
||||
// Is IDecl derived from 'NSProxy'? If so, no instance methods
|
||||
@ -5105,8 +5105,8 @@ bool Sema::CheckObjCDeclScope(Decl *D) {
|
||||
/// Called whenever \@defs(ClassName) is encountered in the source. Inserts the
|
||||
/// instance variables of ClassName into Decls.
|
||||
void Sema::ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart,
|
||||
IdentifierInfo *ClassName,
|
||||
SmallVectorImpl<Decl*> &Decls) {
|
||||
const IdentifierInfo *ClassName,
|
||||
SmallVectorImpl<Decl *> &Decls) {
|
||||
// Check that ClassName is a valid class
|
||||
ObjCInterfaceDecl *Class = getObjCInterfaceDecl(ClassName, DeclStart);
|
||||
if (!Class) {
|
||||
@ -5148,8 +5148,7 @@ void Sema::ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart,
|
||||
VarDecl *Sema::BuildObjCExceptionDecl(TypeSourceInfo *TInfo, QualType T,
|
||||
SourceLocation StartLoc,
|
||||
SourceLocation IdLoc,
|
||||
IdentifierInfo *Id,
|
||||
bool Invalid) {
|
||||
const IdentifierInfo *Id, bool Invalid) {
|
||||
// ISO/IEC TR 18037 S6.7.3: "The type of an object with automatic storage
|
||||
// duration shall not be qualified by an address-space qualifier."
|
||||
// Since all parameters have automatic store duration, they can not have
|
||||
|
@ -57,7 +57,7 @@ using namespace sema;
|
||||
/// name of the corresponding type.
|
||||
ParsedType Sema::getInheritingConstructorName(CXXScopeSpec &SS,
|
||||
SourceLocation NameLoc,
|
||||
IdentifierInfo &Name) {
|
||||
const IdentifierInfo &Name) {
|
||||
NestedNameSpecifier *NNS = SS.getScopeRep();
|
||||
|
||||
// Convert the nested-name-specifier into a type.
|
||||
@ -89,10 +89,9 @@ ParsedType Sema::getInheritingConstructorName(CXXScopeSpec &SS,
|
||||
Context.getTrivialTypeSourceInfo(Type, NameLoc));
|
||||
}
|
||||
|
||||
ParsedType Sema::getConstructorName(IdentifierInfo &II,
|
||||
SourceLocation NameLoc,
|
||||
Scope *S, CXXScopeSpec &SS,
|
||||
bool EnteringContext) {
|
||||
ParsedType Sema::getConstructorName(const IdentifierInfo &II,
|
||||
SourceLocation NameLoc, Scope *S,
|
||||
CXXScopeSpec &SS, bool EnteringContext) {
|
||||
CXXRecordDecl *CurClass = getCurrentClass(S, &SS);
|
||||
assert(CurClass && &II == CurClass->getIdentifier() &&
|
||||
"not a constructor name");
|
||||
@ -140,9 +139,9 @@ ParsedType Sema::getConstructorName(IdentifierInfo &II,
|
||||
return ParsedType::make(T);
|
||||
}
|
||||
|
||||
ParsedType Sema::getDestructorName(IdentifierInfo &II, SourceLocation NameLoc,
|
||||
Scope *S, CXXScopeSpec &SS,
|
||||
ParsedType ObjectTypePtr,
|
||||
ParsedType Sema::getDestructorName(const IdentifierInfo &II,
|
||||
SourceLocation NameLoc, Scope *S,
|
||||
CXXScopeSpec &SS, ParsedType ObjectTypePtr,
|
||||
bool EnteringContext) {
|
||||
// Determine where to perform name lookup.
|
||||
|
||||
@ -500,7 +499,7 @@ bool Sema::checkLiteralOperatorId(const CXXScopeSpec &SS,
|
||||
//
|
||||
// double operator""_Bq(long double); // OK: not a reserved identifier
|
||||
// double operator"" _Bq(long double); // ill-formed, no diagnostic required
|
||||
IdentifierInfo *II = Name.Identifier;
|
||||
const IdentifierInfo *II = Name.Identifier;
|
||||
ReservedIdentifierStatus Status = II->isReserved(PP.getLangOpts());
|
||||
SourceLocation Loc = Name.getEndLoc();
|
||||
if (!PP.getSourceManager().isInSystemHeader(Loc)) {
|
||||
@ -9178,10 +9177,9 @@ concepts::Requirement *Sema::ActOnSimpleRequirement(Expr *E) {
|
||||
/*ReturnTypeRequirement=*/{});
|
||||
}
|
||||
|
||||
concepts::Requirement *
|
||||
Sema::ActOnTypeRequirement(SourceLocation TypenameKWLoc, CXXScopeSpec &SS,
|
||||
SourceLocation NameLoc, IdentifierInfo *TypeName,
|
||||
TemplateIdAnnotation *TemplateId) {
|
||||
concepts::Requirement *Sema::ActOnTypeRequirement(
|
||||
SourceLocation TypenameKWLoc, CXXScopeSpec &SS, SourceLocation NameLoc,
|
||||
const IdentifierInfo *TypeName, TemplateIdAnnotation *TemplateId) {
|
||||
assert(((!TypeName && TemplateId) || (TypeName && !TemplateId)) &&
|
||||
"Exactly one of TypeName and TemplateId must be specified.");
|
||||
TypeSourceInfo *TSI = nullptr;
|
||||
|
@ -663,10 +663,8 @@ ExprResult Sema::BuildObjCBoxedExpr(SourceRange SR, Expr *ValueExpr) {
|
||||
}
|
||||
|
||||
if (!ValueWithBytesObjCTypeMethod) {
|
||||
IdentifierInfo *II[] = {
|
||||
&Context.Idents.get("valueWithBytes"),
|
||||
&Context.Idents.get("objCType")
|
||||
};
|
||||
const IdentifierInfo *II[] = {&Context.Idents.get("valueWithBytes"),
|
||||
&Context.Idents.get("objCType")};
|
||||
Selector ValueWithBytesObjCType = Context.Selectors.getSelector(2, II);
|
||||
|
||||
// Look for the appropriate method within NSValue.
|
||||
@ -2155,13 +2153,12 @@ HandleExprPropertyRefExpr(const ObjCObjectPointerType *OPT,
|
||||
return ExprError();
|
||||
}
|
||||
|
||||
ExprResult Sema::
|
||||
ActOnClassPropertyRefExpr(IdentifierInfo &receiverName,
|
||||
IdentifierInfo &propertyName,
|
||||
SourceLocation receiverNameLoc,
|
||||
SourceLocation propertyNameLoc) {
|
||||
ExprResult Sema::ActOnClassPropertyRefExpr(const IdentifierInfo &receiverName,
|
||||
const IdentifierInfo &propertyName,
|
||||
SourceLocation receiverNameLoc,
|
||||
SourceLocation propertyNameLoc) {
|
||||
|
||||
IdentifierInfo *receiverNamePtr = &receiverName;
|
||||
const IdentifierInfo *receiverNamePtr = &receiverName;
|
||||
ObjCInterfaceDecl *IFace = getObjCInterfaceDecl(receiverNamePtr,
|
||||
receiverNameLoc);
|
||||
|
||||
|
@ -419,7 +419,7 @@ Sema::HandlePropertyInClassExtension(Scope *S,
|
||||
ObjCCategoryDecl *CDecl = cast<ObjCCategoryDecl>(CurContext);
|
||||
// Diagnose if this property is already in continuation class.
|
||||
DeclContext *DC = CurContext;
|
||||
IdentifierInfo *PropertyId = FD.D.getIdentifier();
|
||||
const IdentifierInfo *PropertyId = FD.D.getIdentifier();
|
||||
ObjCInterfaceDecl *CCPrimary = CDecl->getClassInterface();
|
||||
|
||||
// We need to look in the @interface to see if the @property was
|
||||
@ -571,7 +571,7 @@ ObjCPropertyDecl *Sema::CreatePropertyDecl(Scope *S,
|
||||
TypeSourceInfo *TInfo,
|
||||
tok::ObjCKeywordKind MethodImplKind,
|
||||
DeclContext *lexicalDC){
|
||||
IdentifierInfo *PropertyId = FD.D.getIdentifier();
|
||||
const IdentifierInfo *PropertyId = FD.D.getIdentifier();
|
||||
|
||||
// Property defaults to 'assign' if it is readwrite, unless this is ARC
|
||||
// and the type is retainable.
|
||||
|
@ -7375,7 +7375,7 @@ void Sema::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(
|
||||
llvm::omp::TraitProperty::implementation_extension_allow_templates))
|
||||
return;
|
||||
|
||||
IdentifierInfo *BaseII = D.getIdentifier();
|
||||
const IdentifierInfo *BaseII = D.getIdentifier();
|
||||
LookupResult Lookup(*this, DeclarationName(BaseII), D.getIdentifierLoc(),
|
||||
LookupOrdinaryName);
|
||||
LookupParsedName(Lookup, S, &D.getCXXScopeSpec());
|
||||
|
@ -613,9 +613,9 @@ bool ObjCPropertyOpBuilder::findGetter() {
|
||||
// Must build the getter selector the hard way.
|
||||
ObjCMethodDecl *setter = RefExpr->getImplicitPropertySetter();
|
||||
assert(setter && "both setter and getter are null - cannot happen");
|
||||
IdentifierInfo *setterName =
|
||||
setter->getSelector().getIdentifierInfoForSlot(0);
|
||||
IdentifierInfo *getterName =
|
||||
const IdentifierInfo *setterName =
|
||||
setter->getSelector().getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *getterName =
|
||||
&S.Context.Idents.get(setterName->getName().substr(3));
|
||||
GetterSelector =
|
||||
S.PP.getSelectorTable().getNullarySelector(getterName);
|
||||
@ -640,9 +640,9 @@ bool ObjCPropertyOpBuilder::findSetter(bool warn) {
|
||||
SetterSelector = setter->getSelector();
|
||||
return true;
|
||||
} else {
|
||||
IdentifierInfo *getterName =
|
||||
RefExpr->getImplicitPropertyGetter()->getSelector()
|
||||
.getIdentifierInfoForSlot(0);
|
||||
const IdentifierInfo *getterName = RefExpr->getImplicitPropertyGetter()
|
||||
->getSelector()
|
||||
.getIdentifierInfoForSlot(0);
|
||||
SetterSelector =
|
||||
SelectorTable::constructSetterSelector(S.PP.getIdentifierTable(),
|
||||
S.PP.getSelectorTable(),
|
||||
@ -667,7 +667,8 @@ bool ObjCPropertyOpBuilder::findSetter(bool warn) {
|
||||
front = isLowercase(front) ? toUppercase(front) : toLowercase(front);
|
||||
SmallString<100> PropertyName = thisPropertyName;
|
||||
PropertyName[0] = front;
|
||||
IdentifierInfo *AltMember = &S.PP.getIdentifierTable().get(PropertyName);
|
||||
const IdentifierInfo *AltMember =
|
||||
&S.PP.getIdentifierTable().get(PropertyName);
|
||||
if (ObjCPropertyDecl *prop1 = IFace->FindPropertyDeclaration(
|
||||
AltMember, prop->getQueryKind()))
|
||||
if (prop != prop1 && (prop1->getSetterMethodDecl() == setter)) {
|
||||
@ -1126,9 +1127,8 @@ static void CheckKeyForObjCARCConversion(Sema &S, QualType ContainerT,
|
||||
return;
|
||||
// dictionary subscripting.
|
||||
// - (id)objectForKeyedSubscript:(id)key;
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("objectForKeyedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("objectForKeyedSubscript")};
|
||||
Selector GetterSelector = S.Context.Selectors.getSelector(1, KeyIdents);
|
||||
ObjCMethodDecl *Getter = S.LookupMethodInObjectType(GetterSelector, ContainerT,
|
||||
true /*instance*/);
|
||||
@ -1169,16 +1169,14 @@ bool ObjCSubscriptOpBuilder::findAtIndexGetter() {
|
||||
if (!arrayRef) {
|
||||
// dictionary subscripting.
|
||||
// - (id)objectForKeyedSubscript:(id)key;
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("objectForKeyedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("objectForKeyedSubscript")};
|
||||
AtIndexGetterSelector = S.Context.Selectors.getSelector(1, KeyIdents);
|
||||
}
|
||||
else {
|
||||
// - (id)objectAtIndexedSubscript:(size_t)index;
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("objectAtIndexedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("objectAtIndexedSubscript")};
|
||||
|
||||
AtIndexGetterSelector = S.Context.Selectors.getSelector(1, KeyIdents);
|
||||
}
|
||||
@ -1274,18 +1272,16 @@ bool ObjCSubscriptOpBuilder::findAtIndexSetter() {
|
||||
if (!arrayRef) {
|
||||
// dictionary subscripting.
|
||||
// - (void)setObject:(id)object forKeyedSubscript:(id)key;
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("setObject"),
|
||||
&S.Context.Idents.get("forKeyedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("setObject"),
|
||||
&S.Context.Idents.get("forKeyedSubscript")};
|
||||
AtIndexSetterSelector = S.Context.Selectors.getSelector(2, KeyIdents);
|
||||
}
|
||||
else {
|
||||
// - (void)setObject:(id)object atIndexedSubscript:(NSInteger)index;
|
||||
IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("setObject"),
|
||||
&S.Context.Idents.get("atIndexedSubscript")
|
||||
};
|
||||
const IdentifierInfo *KeyIdents[] = {
|
||||
&S.Context.Idents.get("setObject"),
|
||||
&S.Context.Idents.get("atIndexedSubscript")};
|
||||
AtIndexSetterSelector = S.Context.Selectors.getSelector(2, KeyIdents);
|
||||
}
|
||||
AtIndexSetter = S.LookupMethodInObjectType(AtIndexSetterSelector, ResultType,
|
||||
@ -1474,7 +1470,7 @@ ExprResult MSPropertyOpBuilder::buildGet() {
|
||||
}
|
||||
|
||||
UnqualifiedId GetterName;
|
||||
IdentifierInfo *II = RefExpr->getPropertyDecl()->getGetterId();
|
||||
const IdentifierInfo *II = RefExpr->getPropertyDecl()->getGetterId();
|
||||
GetterName.setIdentifier(II, RefExpr->getMemberLoc());
|
||||
CXXScopeSpec SS;
|
||||
SS.Adopt(RefExpr->getQualifierLoc());
|
||||
@ -1503,7 +1499,7 @@ ExprResult MSPropertyOpBuilder::buildSet(Expr *op, SourceLocation sl,
|
||||
}
|
||||
|
||||
UnqualifiedId SetterName;
|
||||
IdentifierInfo *II = RefExpr->getPropertyDecl()->getSetterId();
|
||||
const IdentifierInfo *II = RefExpr->getPropertyDecl()->getSetterId();
|
||||
SetterName.setIdentifier(II, RefExpr->getMemberLoc());
|
||||
CXXScopeSpec SS;
|
||||
SS.Adopt(RefExpr->getQualifierLoc());
|
||||
|
@ -2275,11 +2275,9 @@ Sema::CheckObjCForCollectionOperand(SourceLocation forLoc, Expr *collection) {
|
||||
// Otherwise, if we have any useful type information, check that
|
||||
// the type declares the appropriate method.
|
||||
} else if (iface || !objectType->qual_empty()) {
|
||||
IdentifierInfo *selectorIdents[] = {
|
||||
&Context.Idents.get("countByEnumeratingWithState"),
|
||||
&Context.Idents.get("objects"),
|
||||
&Context.Idents.get("count")
|
||||
};
|
||||
const IdentifierInfo *selectorIdents[] = {
|
||||
&Context.Idents.get("countByEnumeratingWithState"),
|
||||
&Context.Idents.get("objects"), &Context.Idents.get("count")};
|
||||
Selector selector = Context.Selectors.getSelector(3, &selectorIdents[0]);
|
||||
|
||||
ObjCMethodDecl *method = nullptr;
|
||||
|
@ -970,7 +970,7 @@ void Sema::translateTemplateArguments(const ASTTemplateArgsPtr &TemplateArgsIn,
|
||||
|
||||
static void maybeDiagnoseTemplateParameterShadow(Sema &SemaRef, Scope *S,
|
||||
SourceLocation Loc,
|
||||
IdentifierInfo *Name) {
|
||||
const IdentifierInfo *Name) {
|
||||
NamedDecl *PrevDecl = SemaRef.LookupSingleName(
|
||||
S, Name, Loc, Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
|
||||
if (PrevDecl && PrevDecl->isTemplateParameter())
|
||||
@ -1578,7 +1578,7 @@ NamedDecl *Sema::ActOnNonTypeTemplateParameter(Scope *S, Declarator &D,
|
||||
|
||||
CheckFunctionOrTemplateParamDeclarator(S, D);
|
||||
|
||||
IdentifierInfo *ParamName = D.getIdentifier();
|
||||
const IdentifierInfo *ParamName = D.getIdentifier();
|
||||
bool IsParameterPack = D.hasEllipsis();
|
||||
NonTypeTemplateParmDecl *Param = NonTypeTemplateParmDecl::Create(
|
||||
Context, Context.getTranslationUnitDecl(), D.getBeginLoc(),
|
||||
@ -4702,7 +4702,7 @@ bool Sema::resolveAssumedTemplateNameAsType(Scope *S, TemplateName &Name,
|
||||
|
||||
TypeResult Sema::ActOnTemplateIdType(
|
||||
Scope *S, CXXScopeSpec &SS, SourceLocation TemplateKWLoc,
|
||||
TemplateTy TemplateD, IdentifierInfo *TemplateII,
|
||||
TemplateTy TemplateD, const IdentifierInfo *TemplateII,
|
||||
SourceLocation TemplateIILoc, SourceLocation LAngleLoc,
|
||||
ASTTemplateArgsPtr TemplateArgsIn, SourceLocation RAngleLoc,
|
||||
bool IsCtorOrDtorName, bool IsClassName,
|
||||
@ -9684,10 +9684,9 @@ Decl *Sema::ActOnTemplateDeclarator(Scope *S,
|
||||
return NewDecl;
|
||||
}
|
||||
|
||||
Decl *Sema::ActOnConceptDefinition(Scope *S,
|
||||
MultiTemplateParamsArg TemplateParameterLists,
|
||||
IdentifierInfo *Name, SourceLocation NameLoc,
|
||||
Expr *ConstraintExpr) {
|
||||
Decl *Sema::ActOnConceptDefinition(
|
||||
Scope *S, MultiTemplateParamsArg TemplateParameterLists,
|
||||
const IdentifierInfo *Name, SourceLocation NameLoc, Expr *ConstraintExpr) {
|
||||
DeclContext *DC = CurContext;
|
||||
|
||||
if (!DC->getRedeclContext()->isFileContext()) {
|
||||
@ -11511,10 +11510,11 @@ DeclResult Sema::ActOnExplicitInstantiation(Scope *S,
|
||||
return (Decl*) nullptr;
|
||||
}
|
||||
|
||||
TypeResult
|
||||
Sema::ActOnDependentTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
|
||||
const CXXScopeSpec &SS, IdentifierInfo *Name,
|
||||
SourceLocation TagLoc, SourceLocation NameLoc) {
|
||||
TypeResult Sema::ActOnDependentTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
|
||||
const CXXScopeSpec &SS,
|
||||
const IdentifierInfo *Name,
|
||||
SourceLocation TagLoc,
|
||||
SourceLocation NameLoc) {
|
||||
// This has to hold, because SS is expected to be defined.
|
||||
assert(Name && "Expected a name in a dependent tag");
|
||||
|
||||
@ -11574,14 +11574,10 @@ TypeResult Sema::ActOnTypenameType(Scope *S, SourceLocation TypenameLoc,
|
||||
}
|
||||
|
||||
TypeResult
|
||||
Sema::ActOnTypenameType(Scope *S,
|
||||
SourceLocation TypenameLoc,
|
||||
const CXXScopeSpec &SS,
|
||||
SourceLocation TemplateKWLoc,
|
||||
TemplateTy TemplateIn,
|
||||
IdentifierInfo *TemplateII,
|
||||
SourceLocation TemplateIILoc,
|
||||
SourceLocation LAngleLoc,
|
||||
Sema::ActOnTypenameType(Scope *S, SourceLocation TypenameLoc,
|
||||
const CXXScopeSpec &SS, SourceLocation TemplateKWLoc,
|
||||
TemplateTy TemplateIn, const IdentifierInfo *TemplateII,
|
||||
SourceLocation TemplateIILoc, SourceLocation LAngleLoc,
|
||||
ASTTemplateArgsPtr TemplateArgsIn,
|
||||
SourceLocation RAngleLoc) {
|
||||
if (TypenameLoc.isValid() && S && !S->getTemplateParamParent())
|
||||
@ -11657,7 +11653,6 @@ Sema::ActOnTypenameType(Scope *S,
|
||||
return CreateParsedType(T, TSI);
|
||||
}
|
||||
|
||||
|
||||
/// Determine whether this failed name lookup should be treated as being
|
||||
/// disabled by a usage of std::enable_if.
|
||||
static bool isEnableIf(NestedNameSpecifierLoc NNS, const IdentifierInfo &II,
|
||||
|
@ -284,7 +284,7 @@ unsigned serialization::ComputeHash(Selector Sel) {
|
||||
++N;
|
||||
unsigned R = 5381;
|
||||
for (unsigned I = 0; I != N; ++I)
|
||||
if (IdentifierInfo *II = Sel.getIdentifierInfoForSlot(I))
|
||||
if (const IdentifierInfo *II = Sel.getIdentifierInfoForSlot(I))
|
||||
R = llvm::djbHash(II->getName(), R);
|
||||
return R;
|
||||
}
|
||||
|
@ -916,14 +916,14 @@ ASTSelectorLookupTrait::ReadKey(const unsigned char* d, unsigned) {
|
||||
SelectorTable &SelTable = Reader.getContext().Selectors;
|
||||
unsigned N =
|
||||
endian::readNext<uint16_t, llvm::endianness::little, unaligned>(d);
|
||||
IdentifierInfo *FirstII = Reader.getLocalIdentifier(
|
||||
const IdentifierInfo *FirstII = Reader.getLocalIdentifier(
|
||||
F, endian::readNext<uint32_t, llvm::endianness::little, unaligned>(d));
|
||||
if (N == 0)
|
||||
return SelTable.getNullarySelector(FirstII);
|
||||
else if (N == 1)
|
||||
return SelTable.getUnarySelector(FirstII);
|
||||
|
||||
SmallVector<IdentifierInfo *, 16> Args;
|
||||
SmallVector<const IdentifierInfo *, 16> Args;
|
||||
Args.push_back(FirstII);
|
||||
for (unsigned I = 1; I != N; ++I)
|
||||
Args.push_back(Reader.getLocalIdentifier(
|
||||
@ -987,7 +987,7 @@ ASTIdentifierLookupTraitBase::ReadKey(const unsigned char* d, unsigned n) {
|
||||
}
|
||||
|
||||
/// Whether the given identifier is "interesting".
|
||||
static bool isInterestingIdentifier(ASTReader &Reader, IdentifierInfo &II,
|
||||
static bool isInterestingIdentifier(ASTReader &Reader, const IdentifierInfo &II,
|
||||
bool IsModule) {
|
||||
bool IsInteresting =
|
||||
II.getNotableIdentifierID() != tok::NotableIdentifierKind::not_notable ||
|
||||
@ -2229,7 +2229,7 @@ namespace {
|
||||
|
||||
} // namespace
|
||||
|
||||
void ASTReader::updateOutOfDateIdentifier(IdentifierInfo &II) {
|
||||
void ASTReader::updateOutOfDateIdentifier(const IdentifierInfo &II) {
|
||||
// Note that we are loading an identifier.
|
||||
Deserializing AnIdentifier(this);
|
||||
|
||||
@ -2254,11 +2254,11 @@ void ASTReader::updateOutOfDateIdentifier(IdentifierInfo &II) {
|
||||
markIdentifierUpToDate(&II);
|
||||
}
|
||||
|
||||
void ASTReader::markIdentifierUpToDate(IdentifierInfo *II) {
|
||||
void ASTReader::markIdentifierUpToDate(const IdentifierInfo *II) {
|
||||
if (!II)
|
||||
return;
|
||||
|
||||
II->setOutOfDate(false);
|
||||
const_cast<IdentifierInfo *>(II)->setOutOfDate(false);
|
||||
|
||||
// Update the generation for this identifier.
|
||||
if (getContext().getLangOpts().Modules)
|
||||
@ -10168,7 +10168,7 @@ void ASTReader::FinishedDeserializing() {
|
||||
}
|
||||
|
||||
void ASTReader::pushExternalDeclIntoScope(NamedDecl *D, DeclarationName Name) {
|
||||
if (IdentifierInfo *II = Name.getAsIdentifierInfo()) {
|
||||
if (const IdentifierInfo *II = Name.getAsIdentifierInfo()) {
|
||||
// Remove any fake results before adding any real ones.
|
||||
auto It = PendingFakeLookupResults.find(II);
|
||||
if (It != PendingFakeLookupResults.end()) {
|
||||
|
@ -3629,7 +3629,7 @@ class ASTIdentifierTableTrait {
|
||||
}
|
||||
|
||||
public:
|
||||
using key_type = IdentifierInfo *;
|
||||
using key_type = const IdentifierInfo *;
|
||||
using key_type_ref = key_type;
|
||||
|
||||
using data_type = IdentID;
|
||||
@ -3661,7 +3661,7 @@ public:
|
||||
}
|
||||
|
||||
std::pair<unsigned, unsigned>
|
||||
EmitKeyDataLength(raw_ostream& Out, IdentifierInfo* II, IdentID ID) {
|
||||
EmitKeyDataLength(raw_ostream &Out, const IdentifierInfo *II, IdentID ID) {
|
||||
// Record the location of the identifier data. This is used when generating
|
||||
// the mapping from persistent IDs to strings.
|
||||
Writer.SetIdentifierOffset(II, Out.tell());
|
||||
@ -3688,13 +3688,12 @@ public:
|
||||
return emitULEBKeyDataLength(KeyLen, DataLen, Out);
|
||||
}
|
||||
|
||||
void EmitKey(raw_ostream& Out, const IdentifierInfo* II,
|
||||
unsigned KeyLen) {
|
||||
void EmitKey(raw_ostream &Out, const IdentifierInfo *II, unsigned KeyLen) {
|
||||
Out.write(II->getNameStart(), KeyLen);
|
||||
}
|
||||
|
||||
void EmitData(raw_ostream& Out, IdentifierInfo* II,
|
||||
IdentID ID, unsigned) {
|
||||
void EmitData(raw_ostream &Out, const IdentifierInfo *II, IdentID ID,
|
||||
unsigned) {
|
||||
using namespace llvm::support;
|
||||
|
||||
endian::Writer LE(Out, llvm::endianness::little);
|
||||
@ -3776,13 +3775,14 @@ void ASTWriter::WriteIdentifierTable(Preprocessor &PP,
|
||||
// for identifiers that appear here for the first time.
|
||||
IdentifierOffsets.resize(NextIdentID - FirstIdentID);
|
||||
for (auto IdentIDPair : IdentifierIDs) {
|
||||
auto *II = const_cast<IdentifierInfo *>(IdentIDPair.first);
|
||||
const IdentifierInfo *II = IdentIDPair.first;
|
||||
IdentID ID = IdentIDPair.second;
|
||||
assert(II && "NULL identifier in identifier table");
|
||||
|
||||
// Write out identifiers if either the ID is local or the identifier has
|
||||
// changed since it was loaded.
|
||||
if (ID >= FirstIdentID || !Chain || !II->isFromAST()
|
||||
|| II->hasChangedSinceDeserialization() ||
|
||||
if (ID >= FirstIdentID || !Chain || !II->isFromAST() ||
|
||||
II->hasChangedSinceDeserialization() ||
|
||||
(Trait.needDecls() &&
|
||||
II->hasFETokenInfoChangedSinceDeserialization()))
|
||||
Generator.insert(II, ID, Trait);
|
||||
|
@ -768,8 +768,8 @@ void ObjCDeallocChecker::initIdentifierInfoAndSelectors(
|
||||
Block_releaseII = &Ctx.Idents.get("_Block_release");
|
||||
CIFilterII = &Ctx.Idents.get("CIFilter");
|
||||
|
||||
IdentifierInfo *DeallocII = &Ctx.Idents.get("dealloc");
|
||||
IdentifierInfo *ReleaseII = &Ctx.Idents.get("release");
|
||||
const IdentifierInfo *DeallocII = &Ctx.Idents.get("dealloc");
|
||||
const IdentifierInfo *ReleaseII = &Ctx.Idents.get("release");
|
||||
DeallocSel = Ctx.Selectors.getSelector(0, &DeallocII);
|
||||
ReleaseSel = Ctx.Selectors.getSelector(0, &ReleaseII);
|
||||
}
|
||||
|
@ -154,11 +154,11 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UISearchDisplayController, setSearchResultsTitle, 0)
|
||||
|
||||
NEW_RECEIVER(UITabBarItem)
|
||||
IdentifierInfo *initWithTitleUITabBarItemTag[] = {
|
||||
const IdentifierInfo *initWithTitleUITabBarItemTag[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("image"),
|
||||
&Ctx.Idents.get("tag")};
|
||||
ADD_METHOD(UITabBarItem, initWithTitleUITabBarItemTag, 3, 0)
|
||||
IdentifierInfo *initWithTitleUITabBarItemImage[] = {
|
||||
const IdentifierInfo *initWithTitleUITabBarItemImage[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("image"),
|
||||
&Ctx.Idents.get("selectedImage")};
|
||||
ADD_METHOD(UITabBarItem, initWithTitleUITabBarItemImage, 3, 0)
|
||||
@ -171,7 +171,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSStatusItem, setToolTip, 0)
|
||||
|
||||
NEW_RECEIVER(UITableViewRowAction)
|
||||
IdentifierInfo *rowActionWithStyleUITableViewRowAction[] = {
|
||||
const IdentifierInfo *rowActionWithStyleUITableViewRowAction[] = {
|
||||
&Ctx.Idents.get("rowActionWithStyle"), &Ctx.Idents.get("title"),
|
||||
&Ctx.Idents.get("handler")};
|
||||
ADD_METHOD(UITableViewRowAction, rowActionWithStyleUITableViewRowAction, 3, 1)
|
||||
@ -183,19 +183,19 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
NEW_RECEIVER(NSButton)
|
||||
ADD_UNARY_METHOD(NSButton, setTitle, 0)
|
||||
ADD_UNARY_METHOD(NSButton, setAlternateTitle, 0)
|
||||
IdentifierInfo *radioButtonWithTitleNSButton[] = {
|
||||
const IdentifierInfo *radioButtonWithTitleNSButton[] = {
|
||||
&Ctx.Idents.get("radioButtonWithTitle"), &Ctx.Idents.get("target"),
|
||||
&Ctx.Idents.get("action")};
|
||||
ADD_METHOD(NSButton, radioButtonWithTitleNSButton, 3, 0)
|
||||
IdentifierInfo *buttonWithTitleNSButtonImage[] = {
|
||||
const IdentifierInfo *buttonWithTitleNSButtonImage[] = {
|
||||
&Ctx.Idents.get("buttonWithTitle"), &Ctx.Idents.get("image"),
|
||||
&Ctx.Idents.get("target"), &Ctx.Idents.get("action")};
|
||||
ADD_METHOD(NSButton, buttonWithTitleNSButtonImage, 4, 0)
|
||||
IdentifierInfo *checkboxWithTitleNSButton[] = {
|
||||
const IdentifierInfo *checkboxWithTitleNSButton[] = {
|
||||
&Ctx.Idents.get("checkboxWithTitle"), &Ctx.Idents.get("target"),
|
||||
&Ctx.Idents.get("action")};
|
||||
ADD_METHOD(NSButton, checkboxWithTitleNSButton, 3, 0)
|
||||
IdentifierInfo *buttonWithTitleNSButtonTarget[] = {
|
||||
const IdentifierInfo *buttonWithTitleNSButtonTarget[] = {
|
||||
&Ctx.Idents.get("buttonWithTitle"), &Ctx.Idents.get("target"),
|
||||
&Ctx.Idents.get("action")};
|
||||
ADD_METHOD(NSButton, buttonWithTitleNSButtonTarget, 3, 0)
|
||||
@ -215,8 +215,8 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSTabViewItem, setToolTip, 0)
|
||||
|
||||
NEW_RECEIVER(NSBrowser)
|
||||
IdentifierInfo *setTitleNSBrowser[] = {&Ctx.Idents.get("setTitle"),
|
||||
&Ctx.Idents.get("ofColumn")};
|
||||
const IdentifierInfo *setTitleNSBrowser[] = {&Ctx.Idents.get("setTitle"),
|
||||
&Ctx.Idents.get("ofColumn")};
|
||||
ADD_METHOD(NSBrowser, setTitleNSBrowser, 2, 0)
|
||||
|
||||
NEW_RECEIVER(UIAccessibilityElement)
|
||||
@ -225,14 +225,14 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UIAccessibilityElement, setAccessibilityValue, 0)
|
||||
|
||||
NEW_RECEIVER(UIAlertAction)
|
||||
IdentifierInfo *actionWithTitleUIAlertAction[] = {
|
||||
const IdentifierInfo *actionWithTitleUIAlertAction[] = {
|
||||
&Ctx.Idents.get("actionWithTitle"), &Ctx.Idents.get("style"),
|
||||
&Ctx.Idents.get("handler")};
|
||||
ADD_METHOD(UIAlertAction, actionWithTitleUIAlertAction, 3, 0)
|
||||
|
||||
NEW_RECEIVER(NSPopUpButton)
|
||||
ADD_UNARY_METHOD(NSPopUpButton, addItemWithTitle, 0)
|
||||
IdentifierInfo *insertItemWithTitleNSPopUpButton[] = {
|
||||
const IdentifierInfo *insertItemWithTitleNSPopUpButton[] = {
|
||||
&Ctx.Idents.get("insertItemWithTitle"), &Ctx.Idents.get("atIndex")};
|
||||
ADD_METHOD(NSPopUpButton, insertItemWithTitleNSPopUpButton, 2, 0)
|
||||
ADD_UNARY_METHOD(NSPopUpButton, removeItemWithTitle, 0)
|
||||
@ -240,7 +240,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSPopUpButton, setTitle, 0)
|
||||
|
||||
NEW_RECEIVER(NSTableViewRowAction)
|
||||
IdentifierInfo *rowActionWithStyleNSTableViewRowAction[] = {
|
||||
const IdentifierInfo *rowActionWithStyleNSTableViewRowAction[] = {
|
||||
&Ctx.Idents.get("rowActionWithStyle"), &Ctx.Idents.get("title"),
|
||||
&Ctx.Idents.get("handler")};
|
||||
ADD_METHOD(NSTableViewRowAction, rowActionWithStyleNSTableViewRowAction, 3, 1)
|
||||
@ -273,10 +273,10 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSTableColumn, setHeaderToolTip, 0)
|
||||
|
||||
NEW_RECEIVER(NSSegmentedControl)
|
||||
IdentifierInfo *setLabelNSSegmentedControl[] = {
|
||||
const IdentifierInfo *setLabelNSSegmentedControl[] = {
|
||||
&Ctx.Idents.get("setLabel"), &Ctx.Idents.get("forSegment")};
|
||||
ADD_METHOD(NSSegmentedControl, setLabelNSSegmentedControl, 2, 0)
|
||||
IdentifierInfo *setToolTipNSSegmentedControl[] = {
|
||||
const IdentifierInfo *setToolTipNSSegmentedControl[] = {
|
||||
&Ctx.Idents.get("setToolTip"), &Ctx.Idents.get("forSegment")};
|
||||
ADD_METHOD(NSSegmentedControl, setToolTipNSSegmentedControl, 2, 0)
|
||||
|
||||
@ -301,8 +301,8 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSAccessibility, setAccessibilityHelp, 0)
|
||||
|
||||
NEW_RECEIVER(NSMatrix)
|
||||
IdentifierInfo *setToolTipNSMatrix[] = {&Ctx.Idents.get("setToolTip"),
|
||||
&Ctx.Idents.get("forCell")};
|
||||
const IdentifierInfo *setToolTipNSMatrix[] = {&Ctx.Idents.get("setToolTip"),
|
||||
&Ctx.Idents.get("forCell")};
|
||||
ADD_METHOD(NSMatrix, setToolTipNSMatrix, 2, 0)
|
||||
|
||||
NEW_RECEIVER(NSPrintPanel)
|
||||
@ -317,13 +317,13 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSSlider, setTitle, 0)
|
||||
|
||||
NEW_RECEIVER(UIMenuItem)
|
||||
IdentifierInfo *initWithTitleUIMenuItem[] = {&Ctx.Idents.get("initWithTitle"),
|
||||
&Ctx.Idents.get("action")};
|
||||
const IdentifierInfo *initWithTitleUIMenuItem[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("action")};
|
||||
ADD_METHOD(UIMenuItem, initWithTitleUIMenuItem, 2, 0)
|
||||
ADD_UNARY_METHOD(UIMenuItem, setTitle, 0)
|
||||
|
||||
NEW_RECEIVER(UIAlertController)
|
||||
IdentifierInfo *alertControllerWithTitleUIAlertController[] = {
|
||||
const IdentifierInfo *alertControllerWithTitleUIAlertController[] = {
|
||||
&Ctx.Idents.get("alertControllerWithTitle"), &Ctx.Idents.get("message"),
|
||||
&Ctx.Idents.get("preferredStyle")};
|
||||
ADD_METHOD(UIAlertController, alertControllerWithTitleUIAlertController, 3, 1)
|
||||
@ -331,19 +331,19 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UIAlertController, setMessage, 0)
|
||||
|
||||
NEW_RECEIVER(UIApplicationShortcutItem)
|
||||
IdentifierInfo *initWithTypeUIApplicationShortcutItemIcon[] = {
|
||||
const IdentifierInfo *initWithTypeUIApplicationShortcutItemIcon[] = {
|
||||
&Ctx.Idents.get("initWithType"), &Ctx.Idents.get("localizedTitle"),
|
||||
&Ctx.Idents.get("localizedSubtitle"), &Ctx.Idents.get("icon"),
|
||||
&Ctx.Idents.get("userInfo")};
|
||||
ADD_METHOD(UIApplicationShortcutItem,
|
||||
initWithTypeUIApplicationShortcutItemIcon, 5, 1)
|
||||
IdentifierInfo *initWithTypeUIApplicationShortcutItem[] = {
|
||||
const IdentifierInfo *initWithTypeUIApplicationShortcutItem[] = {
|
||||
&Ctx.Idents.get("initWithType"), &Ctx.Idents.get("localizedTitle")};
|
||||
ADD_METHOD(UIApplicationShortcutItem, initWithTypeUIApplicationShortcutItem,
|
||||
2, 1)
|
||||
|
||||
NEW_RECEIVER(UIActionSheet)
|
||||
IdentifierInfo *initWithTitleUIActionSheet[] = {
|
||||
const IdentifierInfo *initWithTitleUIActionSheet[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("delegate"),
|
||||
&Ctx.Idents.get("cancelButtonTitle"),
|
||||
&Ctx.Idents.get("destructiveButtonTitle"),
|
||||
@ -353,7 +353,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UIActionSheet, setTitle, 0)
|
||||
|
||||
NEW_RECEIVER(UIAccessibilityCustomAction)
|
||||
IdentifierInfo *initWithNameUIAccessibilityCustomAction[] = {
|
||||
const IdentifierInfo *initWithNameUIAccessibilityCustomAction[] = {
|
||||
&Ctx.Idents.get("initWithName"), &Ctx.Idents.get("target"),
|
||||
&Ctx.Idents.get("selector")};
|
||||
ADD_METHOD(UIAccessibilityCustomAction,
|
||||
@ -382,7 +382,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
|
||||
NEW_RECEIVER(NSAttributedString)
|
||||
ADD_UNARY_METHOD(NSAttributedString, initWithString, 0)
|
||||
IdentifierInfo *initWithStringNSAttributedString[] = {
|
||||
const IdentifierInfo *initWithStringNSAttributedString[] = {
|
||||
&Ctx.Idents.get("initWithString"), &Ctx.Idents.get("attributes")};
|
||||
ADD_METHOD(NSAttributedString, initWithStringNSAttributedString, 2, 0)
|
||||
|
||||
@ -390,7 +390,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSText, setString, 0)
|
||||
|
||||
NEW_RECEIVER(UIKeyCommand)
|
||||
IdentifierInfo *keyCommandWithInputUIKeyCommand[] = {
|
||||
const IdentifierInfo *keyCommandWithInputUIKeyCommand[] = {
|
||||
&Ctx.Idents.get("keyCommandWithInput"), &Ctx.Idents.get("modifierFlags"),
|
||||
&Ctx.Idents.get("action"), &Ctx.Idents.get("discoverabilityTitle")};
|
||||
ADD_METHOD(UIKeyCommand, keyCommandWithInputUIKeyCommand, 4, 3)
|
||||
@ -400,7 +400,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UILabel, setText, 0)
|
||||
|
||||
NEW_RECEIVER(NSAlert)
|
||||
IdentifierInfo *alertWithMessageTextNSAlert[] = {
|
||||
const IdentifierInfo *alertWithMessageTextNSAlert[] = {
|
||||
&Ctx.Idents.get("alertWithMessageText"), &Ctx.Idents.get("defaultButton"),
|
||||
&Ctx.Idents.get("alternateButton"), &Ctx.Idents.get("otherButton"),
|
||||
&Ctx.Idents.get("informativeTextWithFormat")};
|
||||
@ -415,13 +415,13 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UIMutableApplicationShortcutItem, setLocalizedSubtitle, 0)
|
||||
|
||||
NEW_RECEIVER(UIButton)
|
||||
IdentifierInfo *setTitleUIButton[] = {&Ctx.Idents.get("setTitle"),
|
||||
&Ctx.Idents.get("forState")};
|
||||
const IdentifierInfo *setTitleUIButton[] = {&Ctx.Idents.get("setTitle"),
|
||||
&Ctx.Idents.get("forState")};
|
||||
ADD_METHOD(UIButton, setTitleUIButton, 2, 0)
|
||||
|
||||
NEW_RECEIVER(NSWindow)
|
||||
ADD_UNARY_METHOD(NSWindow, setTitle, 0)
|
||||
IdentifierInfo *minFrameWidthWithTitleNSWindow[] = {
|
||||
const IdentifierInfo *minFrameWidthWithTitleNSWindow[] = {
|
||||
&Ctx.Idents.get("minFrameWidthWithTitle"), &Ctx.Idents.get("styleMask")};
|
||||
ADD_METHOD(NSWindow, minFrameWidthWithTitleNSWindow, 2, 0)
|
||||
ADD_UNARY_METHOD(NSWindow, setMiniwindowTitle, 0)
|
||||
@ -430,7 +430,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSPathCell, setPlaceholderString, 0)
|
||||
|
||||
NEW_RECEIVER(UIDocumentMenuViewController)
|
||||
IdentifierInfo *addOptionWithTitleUIDocumentMenuViewController[] = {
|
||||
const IdentifierInfo *addOptionWithTitleUIDocumentMenuViewController[] = {
|
||||
&Ctx.Idents.get("addOptionWithTitle"), &Ctx.Idents.get("image"),
|
||||
&Ctx.Idents.get("order"), &Ctx.Idents.get("handler")};
|
||||
ADD_METHOD(UIDocumentMenuViewController,
|
||||
@ -442,7 +442,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UINavigationItem, setPrompt, 0)
|
||||
|
||||
NEW_RECEIVER(UIAlertView)
|
||||
IdentifierInfo *initWithTitleUIAlertView[] = {
|
||||
const IdentifierInfo *initWithTitleUIAlertView[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("message"),
|
||||
&Ctx.Idents.get("delegate"), &Ctx.Idents.get("cancelButtonTitle"),
|
||||
&Ctx.Idents.get("otherButtonTitles")};
|
||||
@ -474,11 +474,11 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSProgress, setLocalizedAdditionalDescription, 0)
|
||||
|
||||
NEW_RECEIVER(NSSegmentedCell)
|
||||
IdentifierInfo *setLabelNSSegmentedCell[] = {&Ctx.Idents.get("setLabel"),
|
||||
&Ctx.Idents.get("forSegment")};
|
||||
const IdentifierInfo *setLabelNSSegmentedCell[] = {
|
||||
&Ctx.Idents.get("setLabel"), &Ctx.Idents.get("forSegment")};
|
||||
ADD_METHOD(NSSegmentedCell, setLabelNSSegmentedCell, 2, 0)
|
||||
IdentifierInfo *setToolTipNSSegmentedCell[] = {&Ctx.Idents.get("setToolTip"),
|
||||
&Ctx.Idents.get("forSegment")};
|
||||
const IdentifierInfo *setToolTipNSSegmentedCell[] = {
|
||||
&Ctx.Idents.get("setToolTip"), &Ctx.Idents.get("forSegment")};
|
||||
ADD_METHOD(NSSegmentedCell, setToolTipNSSegmentedCell, 2, 0)
|
||||
|
||||
NEW_RECEIVER(NSUndoManager)
|
||||
@ -487,7 +487,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSUndoManager, redoMenuTitleForUndoActionName, 0)
|
||||
|
||||
NEW_RECEIVER(NSMenuItem)
|
||||
IdentifierInfo *initWithTitleNSMenuItem[] = {
|
||||
const IdentifierInfo *initWithTitleNSMenuItem[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("action"),
|
||||
&Ctx.Idents.get("keyEquivalent")};
|
||||
ADD_METHOD(NSMenuItem, initWithTitleNSMenuItem, 3, 0)
|
||||
@ -495,11 +495,11 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSMenuItem, setToolTip, 0)
|
||||
|
||||
NEW_RECEIVER(NSPopUpButtonCell)
|
||||
IdentifierInfo *initTextCellNSPopUpButtonCell[] = {
|
||||
const IdentifierInfo *initTextCellNSPopUpButtonCell[] = {
|
||||
&Ctx.Idents.get("initTextCell"), &Ctx.Idents.get("pullsDown")};
|
||||
ADD_METHOD(NSPopUpButtonCell, initTextCellNSPopUpButtonCell, 2, 0)
|
||||
ADD_UNARY_METHOD(NSPopUpButtonCell, addItemWithTitle, 0)
|
||||
IdentifierInfo *insertItemWithTitleNSPopUpButtonCell[] = {
|
||||
const IdentifierInfo *insertItemWithTitleNSPopUpButtonCell[] = {
|
||||
&Ctx.Idents.get("insertItemWithTitle"), &Ctx.Idents.get("atIndex")};
|
||||
ADD_METHOD(NSPopUpButtonCell, insertItemWithTitleNSPopUpButtonCell, 2, 0)
|
||||
ADD_UNARY_METHOD(NSPopUpButtonCell, removeItemWithTitle, 0)
|
||||
@ -511,11 +511,11 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
|
||||
NEW_RECEIVER(NSMenu)
|
||||
ADD_UNARY_METHOD(NSMenu, initWithTitle, 0)
|
||||
IdentifierInfo *insertItemWithTitleNSMenu[] = {
|
||||
const IdentifierInfo *insertItemWithTitleNSMenu[] = {
|
||||
&Ctx.Idents.get("insertItemWithTitle"), &Ctx.Idents.get("action"),
|
||||
&Ctx.Idents.get("keyEquivalent"), &Ctx.Idents.get("atIndex")};
|
||||
ADD_METHOD(NSMenu, insertItemWithTitleNSMenu, 4, 0)
|
||||
IdentifierInfo *addItemWithTitleNSMenu[] = {
|
||||
const IdentifierInfo *addItemWithTitleNSMenu[] = {
|
||||
&Ctx.Idents.get("addItemWithTitle"), &Ctx.Idents.get("action"),
|
||||
&Ctx.Idents.get("keyEquivalent")};
|
||||
ADD_METHOD(NSMenu, addItemWithTitleNSMenu, 3, 0)
|
||||
@ -526,15 +526,15 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
|
||||
NEW_RECEIVER(NSForm)
|
||||
ADD_UNARY_METHOD(NSForm, addEntry, 0)
|
||||
IdentifierInfo *insertEntryNSForm[] = {&Ctx.Idents.get("insertEntry"),
|
||||
&Ctx.Idents.get("atIndex")};
|
||||
const IdentifierInfo *insertEntryNSForm[] = {&Ctx.Idents.get("insertEntry"),
|
||||
&Ctx.Idents.get("atIndex")};
|
||||
ADD_METHOD(NSForm, insertEntryNSForm, 2, 0)
|
||||
|
||||
NEW_RECEIVER(NSTextFieldCell)
|
||||
ADD_UNARY_METHOD(NSTextFieldCell, setPlaceholderString, 0)
|
||||
|
||||
NEW_RECEIVER(NSUserNotificationAction)
|
||||
IdentifierInfo *actionWithIdentifierNSUserNotificationAction[] = {
|
||||
const IdentifierInfo *actionWithIdentifierNSUserNotificationAction[] = {
|
||||
&Ctx.Idents.get("actionWithIdentifier"), &Ctx.Idents.get("title")};
|
||||
ADD_METHOD(NSUserNotificationAction,
|
||||
actionWithIdentifierNSUserNotificationAction, 2, 1)
|
||||
@ -544,7 +544,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UITextField, setPlaceholder, 0)
|
||||
|
||||
NEW_RECEIVER(UIBarButtonItem)
|
||||
IdentifierInfo *initWithTitleUIBarButtonItem[] = {
|
||||
const IdentifierInfo *initWithTitleUIBarButtonItem[] = {
|
||||
&Ctx.Idents.get("initWithTitle"), &Ctx.Idents.get("style"),
|
||||
&Ctx.Idents.get("target"), &Ctx.Idents.get("action")};
|
||||
ADD_METHOD(UIBarButtonItem, initWithTitleUIBarButtonItem, 4, 0)
|
||||
@ -553,16 +553,16 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UIViewController, setTitle, 0)
|
||||
|
||||
NEW_RECEIVER(UISegmentedControl)
|
||||
IdentifierInfo *insertSegmentWithTitleUISegmentedControl[] = {
|
||||
const IdentifierInfo *insertSegmentWithTitleUISegmentedControl[] = {
|
||||
&Ctx.Idents.get("insertSegmentWithTitle"), &Ctx.Idents.get("atIndex"),
|
||||
&Ctx.Idents.get("animated")};
|
||||
ADD_METHOD(UISegmentedControl, insertSegmentWithTitleUISegmentedControl, 3, 0)
|
||||
IdentifierInfo *setTitleUISegmentedControl[] = {
|
||||
const IdentifierInfo *setTitleUISegmentedControl[] = {
|
||||
&Ctx.Idents.get("setTitle"), &Ctx.Idents.get("forSegmentAtIndex")};
|
||||
ADD_METHOD(UISegmentedControl, setTitleUISegmentedControl, 2, 0)
|
||||
|
||||
NEW_RECEIVER(NSAccessibilityCustomRotorItemResult)
|
||||
IdentifierInfo
|
||||
const IdentifierInfo
|
||||
*initWithItemLoadingTokenNSAccessibilityCustomRotorItemResult[] = {
|
||||
&Ctx.Idents.get("initWithItemLoadingToken"),
|
||||
&Ctx.Idents.get("customLabel")};
|
||||
@ -571,7 +571,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSAccessibilityCustomRotorItemResult, setCustomLabel, 0)
|
||||
|
||||
NEW_RECEIVER(UIContextualAction)
|
||||
IdentifierInfo *contextualActionWithStyleUIContextualAction[] = {
|
||||
const IdentifierInfo *contextualActionWithStyleUIContextualAction[] = {
|
||||
&Ctx.Idents.get("contextualActionWithStyle"), &Ctx.Idents.get("title"),
|
||||
&Ctx.Idents.get("handler")};
|
||||
ADD_METHOD(UIContextualAction, contextualActionWithStyleUIContextualAction, 3,
|
||||
@ -579,7 +579,7 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(UIContextualAction, setTitle, 0)
|
||||
|
||||
NEW_RECEIVER(NSAccessibilityCustomRotor)
|
||||
IdentifierInfo *initWithLabelNSAccessibilityCustomRotor[] = {
|
||||
const IdentifierInfo *initWithLabelNSAccessibilityCustomRotor[] = {
|
||||
&Ctx.Idents.get("initWithLabel"), &Ctx.Idents.get("itemSearchDelegate")};
|
||||
ADD_METHOD(NSAccessibilityCustomRotor,
|
||||
initWithLabelNSAccessibilityCustomRotor, 2, 0)
|
||||
@ -590,11 +590,11 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
|
||||
ADD_UNARY_METHOD(NSWindowTab, setToolTip, 0)
|
||||
|
||||
NEW_RECEIVER(NSAccessibilityCustomAction)
|
||||
IdentifierInfo *initWithNameNSAccessibilityCustomAction[] = {
|
||||
const IdentifierInfo *initWithNameNSAccessibilityCustomAction[] = {
|
||||
&Ctx.Idents.get("initWithName"), &Ctx.Idents.get("handler")};
|
||||
ADD_METHOD(NSAccessibilityCustomAction,
|
||||
initWithNameNSAccessibilityCustomAction, 2, 0)
|
||||
IdentifierInfo *initWithNameTargetNSAccessibilityCustomAction[] = {
|
||||
const IdentifierInfo *initWithNameTargetNSAccessibilityCustomAction[] = {
|
||||
&Ctx.Idents.get("initWithName"), &Ctx.Idents.get("target"),
|
||||
&Ctx.Idents.get("selector")};
|
||||
ADD_METHOD(NSAccessibilityCustomAction,
|
||||
@ -618,12 +618,12 @@ void NonLocalizedStringChecker::initLocStringsMethods(ASTContext &Ctx) const {
|
||||
if (!LSM.empty())
|
||||
return;
|
||||
|
||||
IdentifierInfo *LocalizedStringMacro[] = {
|
||||
const IdentifierInfo *LocalizedStringMacro[] = {
|
||||
&Ctx.Idents.get("localizedStringForKey"), &Ctx.Idents.get("value"),
|
||||
&Ctx.Idents.get("table")};
|
||||
LSM_INSERT_SELECTOR("NSBundle", LocalizedStringMacro, 3)
|
||||
LSM_INSERT_UNARY("NSDateFormatter", "stringFromDate")
|
||||
IdentifierInfo *LocalizedStringFromDate[] = {
|
||||
const IdentifierInfo *LocalizedStringFromDate[] = {
|
||||
&Ctx.Idents.get("localizedStringFromDate"), &Ctx.Idents.get("dateStyle"),
|
||||
&Ctx.Idents.get("timeStyle")};
|
||||
LSM_INSERT_SELECTOR("NSDateFormatter", LocalizedStringFromDate, 3)
|
||||
@ -903,7 +903,7 @@ static inline bool isNSStringType(QualType T, ASTContext &Ctx) {
|
||||
if (!Cls)
|
||||
return false;
|
||||
|
||||
IdentifierInfo *ClsName = Cls->getIdentifier();
|
||||
const IdentifierInfo *ClsName = Cls->getIdentifier();
|
||||
|
||||
// FIXME: Should we walk the chain of classes?
|
||||
return ClsName == &Ctx.Idents.get("NSString") ||
|
||||
|
@ -1082,7 +1082,8 @@ void NullabilityChecker::checkPostObjCMessage(const ObjCMethodCall &M,
|
||||
M.getMessageKind() == OCM_PropertyAccess && !C.wasInlined) {
|
||||
bool LookupResolved = false;
|
||||
if (const MemRegion *ReceiverRegion = getTrackRegion(M.getReceiverSVal())) {
|
||||
if (IdentifierInfo *Ident = M.getSelector().getIdentifierInfoForSlot(0)) {
|
||||
if (const IdentifierInfo *Ident =
|
||||
M.getSelector().getIdentifierInfoForSlot(0)) {
|
||||
LookupResolved = true;
|
||||
ObjectPropPair Key = std::make_pair(ReceiverRegion, Ident);
|
||||
const ConstrainedPropertyVal *PrevPropVal =
|
||||
|
@ -107,7 +107,7 @@ void ObjCSuperCallChecker::fillSelectors(ASTContext &Ctx,
|
||||
assert(Descriptor.ArgumentCount <= 1); // No multi-argument selectors yet.
|
||||
|
||||
// Get the selector.
|
||||
IdentifierInfo *II = &Ctx.Idents.get(Descriptor.SelectorName);
|
||||
const IdentifierInfo *II = &Ctx.Idents.get(Descriptor.SelectorName);
|
||||
|
||||
Selector Sel = Ctx.Selectors.getSelector(Descriptor.ArgumentCount, &II);
|
||||
ClassSelectors.insert(Sel);
|
||||
|
@ -26,8 +26,8 @@ namespace {
|
||||
class ObjCSuperDeallocChecker
|
||||
: public Checker<check::PostObjCMessage, check::PreObjCMessage,
|
||||
check::PreCall, check::Location> {
|
||||
mutable IdentifierInfo *IIdealloc = nullptr;
|
||||
mutable IdentifierInfo *IINSObject = nullptr;
|
||||
mutable const IdentifierInfo *IIdealloc = nullptr;
|
||||
mutable const IdentifierInfo *IINSObject = nullptr;
|
||||
mutable Selector SELdealloc;
|
||||
|
||||
const BugType DoubleSuperDeallocBugType{
|
||||
|
@ -601,15 +601,15 @@ namespace {
|
||||
AllocatedResults.Contexts = getContextsForContextKind(contextKind, S);
|
||||
|
||||
AllocatedResults.Selector = "";
|
||||
ArrayRef<IdentifierInfo *> SelIdents = Context.getSelIdents();
|
||||
for (ArrayRef<IdentifierInfo *>::iterator I = SelIdents.begin(),
|
||||
E = SelIdents.end();
|
||||
ArrayRef<const IdentifierInfo *> SelIdents = Context.getSelIdents();
|
||||
for (ArrayRef<const IdentifierInfo *>::iterator I = SelIdents.begin(),
|
||||
E = SelIdents.end();
|
||||
I != E; ++I) {
|
||||
if (IdentifierInfo *selIdent = *I)
|
||||
if (const IdentifierInfo *selIdent = *I)
|
||||
AllocatedResults.Selector += selIdent->getName();
|
||||
AllocatedResults.Selector += ":";
|
||||
}
|
||||
|
||||
|
||||
QualType baseType = Context.getBaseType();
|
||||
NamedDecl *D = nullptr;
|
||||
|
||||
|
@ -56,7 +56,7 @@ public:
|
||||
return m_Source->GetExternalCXXBaseSpecifiers(Offset);
|
||||
}
|
||||
|
||||
void updateOutOfDateIdentifier(clang::IdentifierInfo &II) override {
|
||||
void updateOutOfDateIdentifier(const clang::IdentifierInfo &II) override {
|
||||
m_Source->updateOutOfDateIdentifier(II);
|
||||
}
|
||||
|
||||
|
@ -713,17 +713,18 @@ bool ClangASTSource::FindObjCMethodDeclsWithOrigin(
|
||||
Selector original_selector;
|
||||
|
||||
if (decl_name.isObjCZeroArgSelector()) {
|
||||
IdentifierInfo *ident = &original_ctx->Idents.get(decl_name.getAsString());
|
||||
const IdentifierInfo *ident =
|
||||
&original_ctx->Idents.get(decl_name.getAsString());
|
||||
original_selector = original_ctx->Selectors.getSelector(0, &ident);
|
||||
} else if (decl_name.isObjCOneArgSelector()) {
|
||||
const std::string &decl_name_string = decl_name.getAsString();
|
||||
std::string decl_name_string_without_colon(decl_name_string.c_str(),
|
||||
decl_name_string.length() - 1);
|
||||
IdentifierInfo *ident =
|
||||
const IdentifierInfo *ident =
|
||||
&original_ctx->Idents.get(decl_name_string_without_colon);
|
||||
original_selector = original_ctx->Selectors.getSelector(1, &ident);
|
||||
} else {
|
||||
SmallVector<IdentifierInfo *, 4> idents;
|
||||
SmallVector<const IdentifierInfo *, 4> idents;
|
||||
|
||||
clang::Selector sel = decl_name.getObjCSelector();
|
||||
|
||||
|
@ -316,7 +316,7 @@ public:
|
||||
const bool HasRelatedResultType = false;
|
||||
const bool for_expression = true;
|
||||
|
||||
std::vector<clang::IdentifierInfo *> selector_components;
|
||||
std::vector<const clang::IdentifierInfo *> selector_components;
|
||||
|
||||
const char *name_cursor = name;
|
||||
bool is_zero_argument = true;
|
||||
@ -335,7 +335,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
clang::IdentifierInfo **identifier_infos = selector_components.data();
|
||||
const clang::IdentifierInfo **identifier_infos = selector_components.data();
|
||||
if (!identifier_infos) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -7910,14 +7910,14 @@ bool TypeSystemClang::AddObjCClassProperty(
|
||||
if (property_setter_name) {
|
||||
std::string property_setter_no_colon(property_setter_name,
|
||||
strlen(property_setter_name) - 1);
|
||||
clang::IdentifierInfo *setter_ident =
|
||||
const clang::IdentifierInfo *setter_ident =
|
||||
&clang_ast.Idents.get(property_setter_no_colon);
|
||||
setter_sel = clang_ast.Selectors.getSelector(1, &setter_ident);
|
||||
} else if (!(property_attributes & DW_APPLE_PROPERTY_readonly)) {
|
||||
std::string setter_sel_string("set");
|
||||
setter_sel_string.push_back(::toupper(property_name[0]));
|
||||
setter_sel_string.append(&property_name[1]);
|
||||
clang::IdentifierInfo *setter_ident =
|
||||
const clang::IdentifierInfo *setter_ident =
|
||||
&clang_ast.Idents.get(setter_sel_string);
|
||||
setter_sel = clang_ast.Selectors.getSelector(1, &setter_ident);
|
||||
}
|
||||
@ -7925,11 +7925,12 @@ bool TypeSystemClang::AddObjCClassProperty(
|
||||
property_decl->setPropertyAttributes(ObjCPropertyAttribute::kind_setter);
|
||||
|
||||
if (property_getter_name != nullptr) {
|
||||
clang::IdentifierInfo *getter_ident =
|
||||
const clang::IdentifierInfo *getter_ident =
|
||||
&clang_ast.Idents.get(property_getter_name);
|
||||
getter_sel = clang_ast.Selectors.getSelector(0, &getter_ident);
|
||||
} else {
|
||||
clang::IdentifierInfo *getter_ident = &clang_ast.Idents.get(property_name);
|
||||
const clang::IdentifierInfo *getter_ident =
|
||||
&clang_ast.Idents.get(property_name);
|
||||
getter_sel = clang_ast.Selectors.getSelector(0, &getter_ident);
|
||||
}
|
||||
property_decl->setGetterName(getter_sel);
|
||||
@ -8091,7 +8092,7 @@ clang::ObjCMethodDecl *TypeSystemClang::AddMethodToObjCObjectType(
|
||||
return nullptr;
|
||||
|
||||
selector_start++;
|
||||
llvm::SmallVector<clang::IdentifierInfo *, 12> selector_idents;
|
||||
llvm::SmallVector<const clang::IdentifierInfo *, 12> selector_idents;
|
||||
|
||||
size_t len = 0;
|
||||
const char *start;
|
||||
|
Loading…
x
Reference in New Issue
Block a user