Lines Matching refs:Class

998 static bool CanDeclareSpecialMemberFunction(const CXXRecordDecl *Class) {  in CanDeclareSpecialMemberFunction()  argument
1000 if (!Class->getDefinition() || Class->isDependentContext()) in CanDeclareSpecialMemberFunction()
1004 return !Class->isBeingDefined(); in CanDeclareSpecialMemberFunction()
1007 void Sema::ForceDeclarationOfImplicitMembers(CXXRecordDecl *Class) { in ForceDeclarationOfImplicitMembers() argument
1008 if (!CanDeclareSpecialMemberFunction(Class)) in ForceDeclarationOfImplicitMembers()
1012 if (Class->needsImplicitDefaultConstructor()) in ForceDeclarationOfImplicitMembers()
1013 DeclareImplicitDefaultConstructor(Class); in ForceDeclarationOfImplicitMembers()
1016 if (Class->needsImplicitCopyConstructor()) in ForceDeclarationOfImplicitMembers()
1017 DeclareImplicitCopyConstructor(Class); in ForceDeclarationOfImplicitMembers()
1020 if (Class->needsImplicitCopyAssignment()) in ForceDeclarationOfImplicitMembers()
1021 DeclareImplicitCopyAssignment(Class); in ForceDeclarationOfImplicitMembers()
1025 if (Class->needsImplicitMoveConstructor()) in ForceDeclarationOfImplicitMembers()
1026 DeclareImplicitMoveConstructor(Class); in ForceDeclarationOfImplicitMembers()
1029 if (Class->needsImplicitMoveAssignment()) in ForceDeclarationOfImplicitMembers()
1030 DeclareImplicitMoveAssignment(Class); in ForceDeclarationOfImplicitMembers()
1034 if (Class->needsImplicitDestructor()) in ForceDeclarationOfImplicitMembers()
1035 DeclareImplicitDestructor(Class); in ForceDeclarationOfImplicitMembers()
1069 CXXRecordDecl *Class = const_cast<CXXRecordDecl *>(Record); in DeclareImplicitMemberFunctionsWithName() local
1071 S.DeclareImplicitDefaultConstructor(Class); in DeclareImplicitMemberFunctionsWithName()
1073 S.DeclareImplicitCopyConstructor(Class); in DeclareImplicitMemberFunctionsWithName()
1076 S.DeclareImplicitMoveConstructor(Class); in DeclareImplicitMemberFunctionsWithName()
1093 CXXRecordDecl *Class = const_cast<CXXRecordDecl *>(Record); in DeclareImplicitMemberFunctionsWithName() local
1095 S.DeclareImplicitCopyAssignment(Class); in DeclareImplicitMemberFunctionsWithName()
1098 S.DeclareImplicitMoveAssignment(Class); in DeclareImplicitMemberFunctionsWithName()
1393 if (ObjCInterfaceDecl *Class = Method->getClassInterface()) { in CppLookupName() local
1395 if (ObjCIvarDecl *Ivar = Class->lookupInstanceVariable( in CppLookupName()
2730 bool Sema::LookupInSuper(LookupResult &R, CXXRecordDecl *Class) { in LookupInSuper() argument
2735 for (const auto &BaseSpec : Class->bases()) { in LookupInSuper()
2739 Result.setBaseObjectType(Context.getRecordType(Class)); in LookupInSuper()
2754 R.setNamingClass(Class); in LookupInSuper()
2964 CXXRecordDecl *Class) { in addAssociatedClassesAndNamespaces() argument
2967 if (Class->getDeclName() == Result.S.VAListTagName) in addAssociatedClassesAndNamespaces()
2979 DeclContext *Ctx = Class->getDeclContext(); in addAssociatedClassesAndNamespaces()
2996 = dyn_cast<ClassTemplateSpecializationDecl>(Class)) { in addAssociatedClassesAndNamespaces()
3010 if (!Result.addClassTransitive(Class)) in addAssociatedClassesAndNamespaces()
3015 Result.S.Context.getRecordType(Class))) in addAssociatedClassesAndNamespaces()
3021 Bases.push_back(Class); in addAssociatedClassesAndNamespaces()
3024 Class = Bases.pop_back_val(); in addAssociatedClassesAndNamespaces()
3027 for (const auto &Base : Class->bases()) { in addAssociatedClassesAndNamespaces()
3073 #define TYPE(Class, Base) in addAssociatedClassesAndNamespaces() argument
3074 #define DEPENDENT_TYPE(Class, Base) case Type::Class: in addAssociatedClassesAndNamespaces() argument
3075 #define NON_CANONICAL_TYPE(Class, Base) case Type::Class: in addAssociatedClassesAndNamespaces() argument
3076 #define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) case Type::Class: in addAssociatedClassesAndNamespaces() argument
3077 #define ABSTRACT_TYPE(Class, Base) in addAssociatedClassesAndNamespaces() argument
3108 CXXRecordDecl *Class = in addAssociatedClassesAndNamespaces() local
3110 addAssociatedClassesAndNamespaces(Result, Class); in addAssociatedClassesAndNamespaces()
3513 CXXConstructorDecl *Sema::LookupDefaultConstructor(CXXRecordDecl *Class) { in LookupDefaultConstructor() argument
3515 LookupSpecialMember(Class, CXXSpecialMemberKind::DefaultConstructor, in LookupDefaultConstructor()
3521 CXXConstructorDecl *Sema::LookupCopyingConstructor(CXXRecordDecl *Class, in LookupCopyingConstructor() argument
3526 Class, CXXSpecialMemberKind::CopyConstructor, Quals & Qualifiers::Const, in LookupCopyingConstructor()
3532 CXXConstructorDecl *Sema::LookupMovingConstructor(CXXRecordDecl *Class, in LookupMovingConstructor() argument
3535 Class, CXXSpecialMemberKind::MoveConstructor, Quals & Qualifiers::Const, in LookupMovingConstructor()
3541 DeclContext::lookup_result Sema::LookupConstructors(CXXRecordDecl *Class) { in LookupConstructors() argument
3543 if (CanDeclareSpecialMemberFunction(Class)) { in LookupConstructors()
3544 runWithSufficientStackSpace(Class->getLocation(), [&] { in LookupConstructors()
3545 if (Class->needsImplicitDefaultConstructor()) in LookupConstructors()
3546 DeclareImplicitDefaultConstructor(Class); in LookupConstructors()
3547 if (Class->needsImplicitCopyConstructor()) in LookupConstructors()
3548 DeclareImplicitCopyConstructor(Class); in LookupConstructors()
3549 if (getLangOpts().CPlusPlus11 && Class->needsImplicitMoveConstructor()) in LookupConstructors()
3550 DeclareImplicitMoveConstructor(Class); in LookupConstructors()
3554 CanQualType T = Context.getCanonicalType(Context.getTypeDeclType(Class)); in LookupConstructors()
3556 return Class->lookup(Name); in LookupConstructors()
3559 CXXMethodDecl *Sema::LookupCopyingAssignment(CXXRecordDecl *Class, in LookupCopyingAssignment() argument
3567 Class, CXXSpecialMemberKind::CopyAssignment, Quals & Qualifiers::Const, in LookupCopyingAssignment()
3574 CXXMethodDecl *Sema::LookupMovingAssignment(CXXRecordDecl *Class, in LookupMovingAssignment() argument
3581 Class, CXXSpecialMemberKind::MoveAssignment, Quals & Qualifiers::Const, in LookupMovingAssignment()
3588 CXXDestructorDecl *Sema::LookupDestructor(CXXRecordDecl *Class) { in LookupDestructor() argument
3590 LookupSpecialMember(Class, CXXSpecialMemberKind::Destructor, false, false, in LookupDestructor()
4101 if (CXXRecordDecl *Class = dyn_cast<CXXRecordDecl>(Ctx)) in lookupInDeclContext() local
4102 Result.getSema().ForceDeclarationOfImplicitMembers(Class); in lookupInDeclContext()
4924 if (ObjCInterfaceDecl *Class = dyn_cast<ObjCInterfaceDecl>(MemberContext)) { in LookupPotentialTypoResult() local
4926 if (ObjCIvarDecl *Ivar = Class->lookupInstanceVariable(Name)) { in LookupPotentialTypoResult()
4933 if (ObjCPropertyDecl *Prop = Class->FindPropertyDeclaration( in LookupPotentialTypoResult()