Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Exception with using __attribute__((deprecated)) on property #10

Closed
tomaz opened this Issue Dec 15, 2010 · 1 comment

Comments

Projects
None yet
1 participant
Owner

tomaz commented Dec 15, 2010

Thanks for your appledoc effort.
I was curious if we could use the experimental version to throw on the headers for our iPhone SDK.
Unfortunately it does not like yet API deprecation,

an header with

@property(nonatomic, retain, readonly) SLCMoney *balance attribute((deprecated));

@property (nonatomic, retain, readonly) SLCScore* highScore attribute((deprecated));

will throw an exception:

2010-12-14 18:23:43.619 appledoc[39836:a0f] *** Assertion failure in -[GBMethodData mergeDataFromObject:], /Volumes/Scoreloop+GIT/Material/appledoc/Model/GBMethodData.m:180

(gdb) po [source methodResultTypes]
<NSCFArray 0x200065100>(
SLCScore,
*,
highScore,
attribute,
(,
(,
deprecated,
)
)

(gdb) po [self methodResultTypes]
<NSCFArray 0x200356d80>(
SLCMoney,
*,
balance,
attribute,
(,
(,
deprecated,
)
)

Best regards, thomas

Owner

tomaz commented Dec 15, 2010

Fixed attribute parsing for property and method definition. Closed by 685ab5d.

The problem was with attribute being processed as part of property or method definition. This is properly detected now and is ignored, together with any combination of text enclosed within parenthesis following attribute keyword.

For example: "attribute()", "attribute(something)", "attribute((!@#!%^&*~`))" etc. are all ignored, as long as at least one open and close parenthesis should be following attribute keyword

tonklon pushed a commit to tonklon/appledoc that referenced this issue Mar 8, 2012

Fixed __attribute__ parsing for property and method definition. Closes
…#10.

The problem was with __attribute__ being processed as part of property or method definition. This is properly detected now and is ignored, together with any combination of text enclosed within parenthesis following __attribute__ keyword.

For example: "__attribute__()", "__attribute__(something)", "__attribute__((!@#!%^&*~`))" etc. are all ignored, as long as at least one open and close parenthesis should be following __attribute__ keyword

This issue was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment