Go to the source code of this file.
static Qualifiers::ObjCLifetime getImpliedARCOwnership (ObjCPropertyAttribute::Kind attrs, QualType type) getImpliedARCOwnership - Given a set of property attributes and a type, infer an expected lifetime.Definition at line 704 of file SemaObjCProperty.cpp.
References clang::Sema::Context, clang::SemaBase::Diag(), clang::ObjCIvarDecl::getAccessControl(), clang::NamedDecl::getDeclName(), getImpliedARCOwnership(), clang::Sema::getLangOpts(), clang::Decl::getLocation(), clang::QualType::getObjCLifetime(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ASTContext::getQualifiedType(), clang::ValueDecl::getType(), clang::ObjCPropertyDecl::getType(), clang::Qualifiers::hasObjCLifetime(), clang::Decl::isInvalidDecl(), clang::Type::isObjCARCImplicitlyUnretainedType(), clang::SourceLocation::isValid(), clang::ObjCPropertyAttribute::kind_assign, clang::Qualifiers::OCL_Autoreleasing, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, clang::Qualifiers::OCL_Weak, clang::ObjCIvarDecl::Private, clang::SplitQualType::Quals, clang::Qualifiers::setObjCLifetime(), clang::ValueDecl::setType(), and clang::QualType::split().
Referenced by clang::SemaObjC::ActOnPropertyImplDecl().
◆ checkAtomicPropertyMismatch()Check for a mismatch in the atomicity of the given properties.
Definition at line 334 of file SemaObjCProperty.cpp.
References Category, clang::SemaBase::Diag(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::Decl::getLocation(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ObjCPropertyDecl::getPropertyAttributesAsWritten(), clang::ObjCPropertyAttribute::kind_atomic, clang::ObjCPropertyAttribute::kind_nonatomic, clang::ObjCPropertyAttribute::kind_readonly, clang::ObjCPropertyDecl::overwritePropertyAttributes(), and clang::Property.
Referenced by clang::SemaObjC::DiagnosePropertyMismatch(), and clang::SemaObjC::HandlePropertyInClassExtension().
◆ CheckPropertyAgainstProtocol() ◆ checkPropertyDeclWithOwnership()Check the internal consistency of a property declaration with an explicit ownership qualifier.
Definition at line 63 of file SemaObjCProperty.cpp.
References clang::ast_matchers::attr, clang::SemaBase::Diag(), getImpliedARCOwnership(), clang::Decl::getLocation(), clang::ObjCPropertyDecl::getType(), clang::Decl::isInvalidDecl(), clang::ObjCPropertyAttribute::kind_strong, clang::ObjCPropertyAttribute::kind_unsafe_unretained, clang::ObjCPropertyAttribute::kind_weak, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.
Referenced by clang::SemaObjC::ActOnProperty().
◆ CollectImmediateProperties() ◆ CollectSuperClassPropertyImplementations() static void CollectSuperClassPropertyImplementations ( ObjCInterfaceDecl * CDecl, ObjCInterfaceDecl::PropertyMap & PropMap ) static ◆ deducePropertyOwnershipFromType() ◆ DiagnoseUnimplementedAccessor()Definition at line 1972 of file SemaObjCProperty.cpp.
References clang::C, clang::SemaBase::Diag(), clang::NamedDecl::getDeclName(), clang::Decl::getLocation(), clang::ObjCMethodDecl::getSelector(), clang::ObjCMethodDecl::isClassMethod(), clang::ObjCPropertyDecl::isClassProperty(), clang::ObjCRuntime::isNonFragile(), clang::Sema::LangOpts, clang::ObjCInterfaceDecl::lookupPropertyAccessor(), and clang::LangOptions::ObjCRuntime.
Referenced by clang::SemaObjC::DiagnoseUnimplementedProperties().
◆ getImpliedARCOwnership()getImpliedARCOwnership - Given a set of property attributes and a type, infer an expected lifetime.
The type's ownership qualification is not considered.
Returns OCL_None if the attributes as stated do not imply an ownership. Never returns OCL_Autoreleasing.
Definition at line 38 of file SemaObjCProperty.cpp.
References clang::ObjCPropertyAttribute::kind_assign, clang::ObjCPropertyAttribute::kind_copy, clang::ObjCPropertyAttribute::kind_retain, clang::ObjCPropertyAttribute::kind_strong, clang::ObjCPropertyAttribute::kind_unsafe_unretained, clang::ObjCPropertyAttribute::kind_weak, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, clang::Qualifiers::OCL_Weak, and clang::ast_matchers::type.
Referenced by clang::SemaObjC::ActOnPropertyImplDecl(), checkARCPropertyImpl(), checkPropertyDeclWithOwnership(), and setImpliedPropertyAttributeForReadOnlyProperty().
◆ getOwnershipRule() ◆ hasWrittenStorageAttribute() ◆ isIncompatiblePropertyAttribute() ◆ LocPropertyAttribute() ◆ makePropertyAttributesAsWritten()Definition at line 270 of file SemaObjCProperty.cpp.
References clang::ObjCPropertyAttribute::kind_assign, clang::ObjCPropertyAttribute::kind_atomic, clang::ObjCPropertyAttribute::kind_class, clang::ObjCPropertyAttribute::kind_copy, clang::ObjCPropertyAttribute::kind_direct, clang::ObjCPropertyAttribute::kind_getter, clang::ObjCPropertyAttribute::kind_nonatomic, clang::ObjCPropertyAttribute::kind_readonly, clang::ObjCPropertyAttribute::kind_readwrite, clang::ObjCPropertyAttribute::kind_retain, clang::ObjCPropertyAttribute::kind_setter, clang::ObjCPropertyAttribute::kind_strong, clang::ObjCPropertyAttribute::kind_unsafe_unretained, and clang::ObjCPropertyAttribute::kind_weak.
Referenced by clang::SemaObjC::CreatePropertyDecl().
◆ RedeclarePropertyAccessor()Create a synthesized property accessor stub inside the @implementation.
Definition at line 1031 of file SemaObjCProperty.cpp.
References clang::ObjCMethodDecl::Create(), clang::Decl::getAttrs(), clang::Decl::getBeginLoc(), clang::Decl::getEndLoc(), clang::ObjCMethodDecl::getMethodFamily(), clang::Decl::hasAttrs(), clang::Decl::isImplicit(), clang::SourceLocation::isValid(), clang::Decl::setAttrs(), clang::ObjCMethodDecl::setCmdDecl(), clang::ObjCMethodDecl::setDefined(), clang::Decl::setLexicalDeclContext(), clang::ObjCMethodDecl::setMethodParams(), and clang::ObjCMethodDecl::setSelfDecl().
Referenced by clang::SemaObjC::ActOnPropertyImplDecl().
◆ SelectPropertyForSynthesisFromProtocols()SelectPropertyForSynthesisFromProtocols - Finds the most appropriate property declaration that should be synthesised in all of the inherited protocols.
It also diagnoses properties declared in inherited protocols with mismatched types or attributes, since any of them can be candidate for synthesis.
Definition at line 821 of file SemaObjCProperty.cpp.
References clang::ObjCInterfaceDecl::all_referenced_protocols(), areIncompatiblePropertyAttributes(), clang::Sema::Context, Diag(), clang::SemaBase::Diag(), clang::ASTContext::getCanonicalType(), clang::ObjCProtocolDecl::getDefinition(), clang::ObjCInterfaceDecl::getSuperClass(), isIncompatiblePropertyAttribute(), clang::Sema::isObjCPointerConversion(), clang::SourceLocation::isValid(), Kind, clang::ObjCPropertyAttribute::kind_assign, clang::ObjCPropertyAttribute::kind_atomic, clang::ObjCPropertyAttribute::kind_copy, clang::ObjCPropertyAttribute::kind_retain, clang::ObjCPropertyAttribute::kind_strong, clang::ObjCPropertyAttribute::kind_unsafe_unretained, clang::ObjCPropertyAttribute::kind_weak, clang::Note, clang::Property, clang::ASTContext::propertyTypesAreCompatible(), and true.
Referenced by clang::SemaObjC::ActOnPropertyImplDecl().
◆ setImpliedPropertyAttributeForReadOnlyProperty()setImpliedPropertyAttributeForReadOnlyProperty - This routine evaludates life-time attributes for a 'readonly' property with no known lifetime of its own, using backing 'ivar's attribute, if any.
If no backing 'ivar', property's life-time is assumed 'strong'.
Definition at line 783 of file SemaObjCProperty.cpp.
References getImpliedARCOwnership(), clang::QualType::getObjCLifetime(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ValueDecl::getType(), clang::ObjCPropertyDecl::getType(), clang::ObjCPropertyAttribute::kind_strong, clang::ObjCPropertyAttribute::kind_weak, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.
Referenced by clang::SemaObjC::ActOnPropertyImplDecl().
◆ SuperClassImplementsProperty() ◆ OwnershipMaskRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4