def Selector : DiagGroup<"selector", [SelectorTypeMismatch]>;
def Protocol : DiagGroup<"protocol">;
def AtProtocol : DiagGroup<"at-protocol">;
+def PropertyAttr : DiagGroup<"property-attribute-mismatch">;
def SuperSubClassMismatch : DiagGroup<"super-class-method-mismatch">;
def OverridingMethodMismatch : DiagGroup<"overriding-method-mismatch">;
def VariadicMacros : DiagGroup<"variadic-macros">;
"'readwrite' of property inherited from %1">;
def warn_property_attribute : Warning<
- "'%1' attribute on property %0 does not match the property inherited from %2">;
+ "'%1' attribute on property %0 does not match the property inherited from %2">,
+ InGroup<PropertyAttr>;
def warn_property_types_are_incompatible : Warning<
"property type %0 is incompatible with type %1 inherited from %2">;
def warn_protocol_property_mismatch : Warning<
"default property attribute 'assign' not appropriate for non-GC object">,
InGroup<ObjCPropertyNoAttribute>;
def warn_property_attr_mismatch : Warning<
- "property attribute in class extension does not match the primary class">;
+ "property attribute in class extension does not match the primary class">,
+ InGroup<PropertyAttr>;
def warn_property_implicitly_mismatched : Warning <
"primary property declaration is implicitly strong while redeclaration "
"in class extension is weak">,
The list of warnings below should NEVER grow. It should gradually shrink to 0.
-CHECK: Warnings without flags (103):
+CHECK: Warnings without flags (101):
CHECK-NEXT: ext_delete_void_ptr_operand
CHECK-NEXT: ext_excess_initializers
CHECK-NEXT: ext_excess_initializers_in_char_array_initializer
CHECK-NEXT: warn_pp_line_decimal
CHECK-NEXT: warn_pragma_pack_pop_identifer_and_alignment
CHECK-NEXT: warn_pragma_pack_show
-CHECK-NEXT: warn_property_attr_mismatch
-CHECK-NEXT: warn_property_attribute
CHECK-NEXT: warn_property_getter_owning_mismatch
CHECK-NEXT: warn_property_types_are_incompatible
CHECK-NEXT: warn_readonly_property