Lines Matching defs:Property
349 auto isImplicitlyReadonlyAtomic = [](ObjCPropertyDecl *Property) -> bool {
351 auto Attrs = Property->getPropertyAttributes();
360 if (Property->getPropertyAttributesAsWritten() &
561 // Property defaults to 'assign' if it is readwrite, unless this is ARC
825 ObjCPropertyDecl *Property) {
826 assert(isa<ObjCProtocolDecl>(Property->getDeclContext()) &&
832 PDecl->collectInheritedProtocolProperties(Property, ProtocolSet,
839 PDecl->collectInheritedProtocolProperties(Property, ProtocolSet,
847 return Property;
849 ObjCPropertyDecl *OriginalProperty = Property;
853 if (Property->isReadOnly() && !Prop.value()->isReadOnly()) {
854 Property = Prop.value();
858 if (Property != OriginalProperty) {
863 QualType RHSType = S.Context.getCanonicalType(Property->getType());
864 unsigned OriginalAttributes = Property->getPropertyAttributesAsWritten();
919 if (Property->getGetterName() != Prop->getGetterName()) {
923 if (!Property->isReadOnly() && !Prop->isReadOnly() &&
924 Property->getSetterName() != Prop->getSetterName()) {
941 return Property;
951 auto Diag = S.Diag(Property->getLocation(),
952 Property != OriginalProperty || HasIncompatibleAttributes
958 Diag << Property->getType();
965 Diag << Property->getGetterName();
968 Diag << Property->getSetterName();
995 return Property;
1612 void SemaObjC::DiagnosePropertyMismatch(ObjCPropertyDecl *Property,
1617 ObjCPropertyAttribute::Kind CAttr = Property->getPropertyAttributes();
1629 Diag(Property->getLocation(), diag::warn_readonly_property)
1630 << Property->getDeclName() << inheritedName;
1633 Diag(Property->getLocation(), diag::warn_property_attribute)
1634 << Property->getDeclName() << "copy" << inheritedName;
1643 Diag(Property->getLocation(), diag::warn_property_attribute)
1644 << Property->getDeclName() << "retain (or strong)" << inheritedName;
1651 checkAtomicPropertyMismatch(SemaRef, SuperProperty, Property, false);
1654 if (Property->getSetterName() != SuperProperty->getSetterName() &&
1657 Diag(Property->getLocation(), diag::warn_property_attribute)
1658 << Property->getDeclName() << "setter" << inheritedName;
1661 if (Property->getGetterName() != SuperProperty->getGetterName()) {
1662 Diag(Property->getLocation(), diag::warn_property_attribute)
1663 << Property->getDeclName() << "getter" << inheritedName;
1670 Context.getCanonicalType(Property->getType());
1680 Diag(Property->getLocation(), diag::warn_property_types_are_incompatible)
1681 << Property->getType() << SuperProperty->getType() << inheritedName;
1826 for (const auto *Property : IFace->instance_properties()) {
1827 if ((Property->getGetterName() == IMD->getSelector() ||
1828 Property->getSetterName() == IMD->getSelector()) &&
1829 (Property->getPropertyIvarDecl() == IV))
1835 for (const auto *Property : Ext->instance_properties())
1836 if ((Property->getGetterName() == IMD->getSelector() ||
1837 Property->getSetterName() == IMD->getSelector()) &&
1838 (Property->getPropertyIvarDecl() == IV))
1884 // Property may have been synthesized by user.
2158 const ObjCPropertyDecl *Property = I->second;
2162 unsigned Attributes = Property->getPropertyAttributes();
2163 unsigned AttributesAsWritten = Property->getPropertyAttributesAsWritten();
2167 GetterMethod = Property->isClassProperty() ?
2168 IMPDecl->getClassMethod(Property->getGetterName()) :
2169 IMPDecl->getInstanceMethod(Property->getGetterName());
2170 SetterMethod = Property->isClassProperty() ?
2171 IMPDecl->getClassMethod(Property->getSetterName()) :
2172 IMPDecl->getInstanceMethod(Property->getSetterName());
2180 << Property->getIdentifier() << 0;
2181 Diag(Property->getLocation(), diag::note_property_declare);
2186 << Property->getIdentifier() << 1;
2187 Diag(Property->getLocation(), diag::note_property_declare);
2196 Property->getIdentifier(), Property->getQueryKind())) {
2210 << Property->getIdentifier() << (GetterMethod != nullptr)
2213 if (Property->getLParenLoc().isValid() &&
2217 SemaRef.getLocForEndOfToken(Property->getLParenLoc());
2220 Diag(Property->getLocation(),
2223 } else if (Property->getLParenLoc().isInvalid()) {
2226 Property->getTypeSourceInfo()->getTypeLoc().getBeginLoc();
2227 Diag(Property->getLocation(),
2232 Diag(Property->getLocation(), diag::note_property_declare);
2342 ObjCPropertyDecl *Property) {
2344 for (const auto *A : Property->attrs()) {