clang
3.7.0
|
#include "clang/Sema/SemaInternal.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Lex/Lexer.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Sema/Initialization.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallString.h"
Go to the source code of this file.
|
static |
AddPropertyAttrs - Propagates attributes from a property to the implicitly-declared getter or setter for that property.
Definition at line 1963 of file SemaObjCProperty.cpp.
References clang::Decl::addAttr(), clang::Decl::attrs(), and clang::Sema::Context.
Referenced by clang::Sema::ProcessPropertyDecl().
|
static |
Check the internal consistency of a property declaration.
Definition at line 65 of file SemaObjCProperty.cpp.
References clang::Sema::Diag(), clang::NamedDecl::getDeclName(), getImpliedARCOwnership(), clang::Decl::getLocation(), clang::ObjCPropertyDecl::getType(), clang::Decl::isInvalidDecl(), clang::ObjCPropertyDecl::OBJC_PR_strong, clang::ObjCPropertyDecl::OBJC_PR_unsafe_unretained, clang::ObjCPropertyDecl::OBJC_PR_weak, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.
Referenced by clang::Sema::ActOnProperty().
|
static |
Definition at line 650 of file SemaObjCProperty.cpp.
References clang::Sema::Context, clang::Sema::Diag(), clang::ObjCIvarDecl::getAccessControl(), clang::NamedDecl::getDeclName(), getImpliedARCOwnership(), clang::Decl::getLocation(), clang::QualType::getObjCLifetime(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ASTContext::getQualifiedType(), clang::ValueDecl::getType(), clang::Qualifiers::hasObjCLifetime(), clang::Decl::isInvalidDecl(), clang::Type::isObjCARCImplicitlyUnretainedType(), clang::SourceLocation::isValid(), clang::ObjCPropertyDecl::OBJC_PR_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::Sema::ActOnPropertyImplDecl().
|
static |
Check this Objective-C property against a property declared in the given protocol.
Definition at line 109 of file SemaObjCProperty.cpp.
References clang::Sema::DiagnosePropertyMismatch(), clang::NamedDecl::getDeclName(), clang::NamedDecl::getIdentifier(), clang::DeclContext::lookup(), P, clang::ObjCProtocolDecl::protocols(), and clang::DeclContextLookupResult::size().
Referenced by clang::Sema::ActOnProperty().
|
static |
CollectImmediateProperties - This routine collects all properties in the class and its conforming protocols; but not those in its super class.
Definition at line 1433 of file SemaObjCProperty.cpp.
References clang::NamedDecl::getIdentifier().
Referenced by clang::Sema::DiagnoseUnimplementedProperties().
|
static |
CollectSuperClassPropertyImplementations - This routine collects list of properties to be implemented in super class(s) and also coming from their conforming protocols.
Definition at line 1478 of file SemaObjCProperty.cpp.
References clang::ObjCInterfaceDecl::getSuperClass().
Referenced by clang::Sema::DefaultSynthesizeProperties(), and clang::Sema::DiagnoseUnimplementedProperties().
|
static |
DiagnosePropertyMismatchDeclInProtocols - diagnose properties declared in inherited protocols with mismatched types. Since any of them can be candidate for synthesis.
Definition at line 755 of file SemaObjCProperty.cpp.
References clang::ObjCInterfaceDecl::all_referenced_protocols(), clang::Sema::Context, clang::Sema::Diag(), clang::ASTContext::getCanonicalType(), clang::ObjCProtocolDecl::getDefinition(), clang::Decl::getLocation(), clang::ObjCInterfaceDecl::getSuperClass(), clang::ObjCPropertyDecl::getType(), clang::Sema::isObjCPointerConversion(), clang::SourceLocation::isValid(), and clang::ASTContext::propertyTypesAreCompatible().
Referenced by clang::Sema::ActOnPropertyImplDecl().
|
static |
Definition at line 1632 of file SemaObjCProperty.cpp.
References clang::Sema::Diag(), clang::NamedDecl::getDeclName(), clang::Decl::getLocation(), clang::ObjCRuntime::isNonFragile(), clang::Sema::LangOpts, clang::ObjCInterfaceDecl::lookupPropertyAccessor(), and clang::LangOptions::ObjCRuntime.
Referenced by clang::Sema::DiagnoseUnimplementedProperties().
|
static |
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 39 of file SemaObjCProperty.cpp.
References clang::Type::isObjCRetainableType(), clang::ObjCPropertyDecl::OBJC_PR_assign, clang::ObjCPropertyDecl::OBJC_PR_copy, clang::ObjCPropertyDecl::OBJC_PR_retain, clang::ObjCPropertyDecl::OBJC_PR_strong, clang::ObjCPropertyDecl::OBJC_PR_unsafe_unretained, clang::ObjCPropertyDecl::OBJC_PR_weak, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.
Referenced by clang::Sema::ActOnPropertyImplDecl(), checkARCPropertyDecl(), checkARCPropertyImpl(), and setImpliedPropertyAttributeForReadOnlyProperty().
Definition at line 296 of file SemaObjCProperty.cpp.
References clang::ObjCPropertyDecl::OBJC_PR_assign, clang::ObjCPropertyDecl::OBJC_PR_copy, clang::ObjCPropertyDecl::OBJC_PR_retain, clang::ObjCPropertyDecl::OBJC_PR_strong, clang::ObjCPropertyDecl::OBJC_PR_unsafe_unretained, and clang::ObjCPropertyDecl::OBJC_PR_weak.
Referenced by clang::Sema::CheckObjCPropertyAttributes(), clang::Sema::DiagnosePropertyMismatch(), and clang::Sema::HandlePropertyInClassExtension().
|
static |
Definition at line 266 of file SemaObjCProperty.cpp.
References clang::SourceManager::getBufferData(), clang::SourceManager::getDecomposedLoc(), clang::ASTContext::getLangOpts(), clang::SourceManager::getLocForStartOfFile(), clang::ASTContext::getSourceManager(), clang::SourceLocation::isMacroID(), and SM.
Referenced by clang::Sema::ActOnPropertyImplDecl().
|
static |
Definition at line 236 of file SemaObjCProperty.cpp.
References clang::ObjCDeclSpec::DQ_PR_assign, clang::ObjCDeclSpec::DQ_PR_atomic, clang::ObjCDeclSpec::DQ_PR_copy, clang::ObjCDeclSpec::DQ_PR_getter, clang::ObjCDeclSpec::DQ_PR_nonatomic, clang::ObjCDeclSpec::DQ_PR_readonly, clang::ObjCDeclSpec::DQ_PR_readwrite, clang::ObjCDeclSpec::DQ_PR_retain, clang::ObjCDeclSpec::DQ_PR_setter, clang::ObjCDeclSpec::DQ_PR_strong, clang::ObjCDeclSpec::DQ_PR_unsafe_unretained, clang::ObjCDeclSpec::DQ_PR_weak, clang::ObjCPropertyDecl::OBJC_PR_assign, clang::ObjCPropertyDecl::OBJC_PR_atomic, clang::ObjCPropertyDecl::OBJC_PR_copy, clang::ObjCPropertyDecl::OBJC_PR_getter, clang::ObjCPropertyDecl::OBJC_PR_nonatomic, clang::ObjCPropertyDecl::OBJC_PR_readonly, clang::ObjCPropertyDecl::OBJC_PR_readwrite, clang::ObjCPropertyDecl::OBJC_PR_retain, clang::ObjCPropertyDecl::OBJC_PR_setter, clang::ObjCPropertyDecl::OBJC_PR_strong, clang::ObjCPropertyDecl::OBJC_PR_unsafe_unretained, and clang::ObjCPropertyDecl::OBJC_PR_weak.
Referenced by clang::Sema::CreatePropertyDecl(), and clang::Sema::HandlePropertyInClassExtension().
|
static |
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 728 of file SemaObjCProperty.cpp.
References getImpliedARCOwnership(), clang::QualType::getObjCLifetime(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ValueDecl::getType(), clang::ObjCPropertyDecl::OBJC_PR_strong, clang::ObjCPropertyDecl::OBJC_PR_weak, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.
Referenced by clang::Sema::ActOnPropertyImplDecl().
|
static |
Definition at line 1513 of file SemaObjCProperty.cpp.
References clang::ObjCPropertyDecl::getGetterName(), clang::ObjCContainerDecl::getInstanceMethod(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ObjCPropertyDecl::getSetterName(), clang::ObjCInterfaceDecl::getSuperClass(), and clang::ObjCPropertyDecl::OBJC_PR_readonly.
Referenced by clang::Sema::DefaultSynthesizeProperties().