Lines Matching defs:Property
347 auto isImplicitlyReadonlyAtomic = [](ObjCPropertyDecl *Property) -> bool {
349 auto Attrs = Property->getPropertyAttributes();
358 if (Property->getPropertyAttributesAsWritten() &
559 // Property defaults to 'assign' if it is readwrite, unless this is ARC
823 ObjCPropertyDecl *Property) {
824 assert(isa<ObjCProtocolDecl>(Property->getDeclContext()) &&
830 PDecl->collectInheritedProtocolProperties(Property, ProtocolSet,
837 PDecl->collectInheritedProtocolProperties(Property, ProtocolSet,
845 return Property;
847 ObjCPropertyDecl *OriginalProperty = Property;
851 if (Property->isReadOnly() && !Prop.value()->isReadOnly()) {
852 Property = Prop.value();
856 if (Property != OriginalProperty) {
861 QualType RHSType = S.Context.getCanonicalType(Property->getType());
862 unsigned OriginalAttributes = Property->getPropertyAttributesAsWritten();
917 if (Property->getGetterName() != Prop->getGetterName()) {
921 if (!Property->isReadOnly() && !Prop->isReadOnly() &&
922 Property->getSetterName() != Prop->getSetterName()) {
939 return Property;
949 auto Diag = S.Diag(Property->getLocation(),
950 Property != OriginalProperty || HasIncompatibleAttributes
956 Diag << Property->getType();
963 Diag << Property->getGetterName();
966 Diag << Property->getSetterName();
993 return Property;
1610 void SemaObjC::DiagnosePropertyMismatch(ObjCPropertyDecl *Property,
1615 ObjCPropertyAttribute::Kind CAttr = Property->getPropertyAttributes();
1627 Diag(Property->getLocation(), diag::warn_readonly_property)
1628 << Property->getDeclName() << inheritedName;
1631 Diag(Property->getLocation(), diag::warn_property_attribute)
1632 << Property->getDeclName() << "copy" << inheritedName;
1641 Diag(Property->getLocation(), diag::warn_property_attribute)
1642 << Property->getDeclName() << "retain (or strong)" << inheritedName;
1649 checkAtomicPropertyMismatch(SemaRef, SuperProperty, Property, false);
1652 if (Property->getSetterName() != SuperProperty->getSetterName() &&
1655 Diag(Property->getLocation(), diag::warn_property_attribute)
1656 << Property->getDeclName() << "setter" << inheritedName;
1659 if (Property->getGetterName() != SuperProperty->getGetterName()) {
1660 Diag(Property->getLocation(), diag::warn_property_attribute)
1661 << Property->getDeclName() << "getter" << inheritedName;
1668 Context.getCanonicalType(Property->getType());
1678 Diag(Property->getLocation(), diag::warn_property_types_are_incompatible)
1679 << Property->getType() << SuperProperty->getType() << inheritedName;
1824 for (const auto *Property : IFace->instance_properties()) {
1825 if ((Property->getGetterName() == IMD->getSelector() ||
1826 Property->getSetterName() == IMD->getSelector()) &&
1827 (Property->getPropertyIvarDecl() == IV))
1833 for (const auto *Property : Ext->instance_properties())
1834 if ((Property->getGetterName() == IMD->getSelector() ||
1835 Property->getSetterName() == IMD->getSelector()) &&
1836 (Property->getPropertyIvarDecl() == IV))
1882 // Property may have been synthesized by user.
2156 const ObjCPropertyDecl *Property = I->second;
2160 unsigned Attributes = Property->getPropertyAttributes();
2161 unsigned AttributesAsWritten = Property->getPropertyAttributesAsWritten();
2165 GetterMethod = Property->isClassProperty() ?
2166 IMPDecl->getClassMethod(Property->getGetterName()) :
2167 IMPDecl->getInstanceMethod(Property->getGetterName());
2168 SetterMethod = Property->isClassProperty() ?
2169 IMPDecl->getClassMethod(Property->getSetterName()) :
2170 IMPDecl->getInstanceMethod(Property->getSetterName());
2178 << Property->getIdentifier() << 0;
2179 Diag(Property->getLocation(), diag::note_property_declare);
2184 << Property->getIdentifier() << 1;
2185 Diag(Property->getLocation(), diag::note_property_declare);
2194 Property->getIdentifier(), Property->getQueryKind())) {
2208 << Property->getIdentifier() << (GetterMethod != nullptr)
2211 if (Property->getLParenLoc().isValid() &&
2215 SemaRef.getLocForEndOfToken(Property->getLParenLoc());
2218 Diag(Property->getLocation(),
2221 } else if (Property->getLParenLoc().isInvalid()) {
2224 Property->getTypeSourceInfo()->getTypeLoc().getBeginLoc();
2225 Diag(Property->getLocation(),
2230 Diag(Property->getLocation(), diag::note_property_declare);
2340 ObjCPropertyDecl *Property) {
2342 for (const auto *A : Property->attrs()) {