[cfe-commits] r125699 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaExprObjC.cpp test/SemaObjC/property-missing.m
Douglas Gregor
dgregor at apple.com
Wed Feb 16 19:26:32 PST 2011
On Feb 16, 2011, at 6:17 PM, Ted Kremenek wrote:
> On Feb 16, 2011, at 6:12 PM, Douglas Gregor wrote:
>
>>
>> On Feb 16, 2011, at 5:59 PM, Ted Kremenek wrote:
>>
>>> Hi Fariborz,
>>>
>>> I'm not certain this diagnostic is any better:
>>>
>>> + myObject.someOtherObject.someProperty = 0; // expected-error {{property 'someOtherObject' names an object of forward class type in class object 'MyClass *'}}
>>>
>>> What is a "forward class type"? I know what you mean; you're talking about a Objective-C class that has only been forward declared, but there is no such thing as a forward class type.
>>>
>>> How about:
>>>
>>> property 'someOtherObject' refers to a Objective-C class ('SomeOtherClass') with only a forward declaration (no @interface available)
>>>
>>> This diagnostic clearly spells out that (a) no @interface is available for (b) the class SomeOtherClass when (c) accessing the property someOtherObject.
>>
>> In the C/C++ world, we would say that the type MyClass is 'incomplete', then point to the forward declaration.
>>
>> - Doug
>
>
> That's true, but a strictly "clinical" diagnostic isn't necessarily helpful to the user. How about:
>
> property 'someOtherObject' refers to an incomplete Objective-C class 'SomeOtherClass' (with no @interface available)
>
> and then have the note refer to the forward declaration (as it does now)?
WFM.
- Doug
More information about the cfe-commits
mailing list