bool property_readwrite = false;
bool property_retain = false;
tree property_setter_ident = NULL_TREE;
- /* The following two will be removed once @synthesize is
- implemented. */
- bool property_copies = false;
- tree property_ivar_ident = NULL_TREE;
/* 'properties' is the list of properties that we read. Usually a
single one, but maybe more (eg, in "@property int a, b, c;" there
switch (keyword)
{
case RID_ASSIGN: property_assign = true; break;
- case RID_COPIES: property_copies = true; break;
case RID_COPY: property_copy = true; break;
case RID_NONATOMIC: property_nonatomic = true; break;
case RID_READONLY: property_readonly = true; break;
case RID_GETTER:
case RID_SETTER:
- case RID_IVAR:
if (cp_lexer_next_token_is_not (parser->lexer, CPP_EQ))
{
cp_parser_error (parser,
else
cp_lexer_consume_token (parser->lexer);
}
- else if (keyword == RID_GETTER)
+ else
{
if (property_getter_ident != NULL_TREE)
cp_parser_error (parser, "the %<getter%> attribute may only be specified once");
property_getter_ident = cp_lexer_peek_token (parser->lexer)->u.value;
cp_lexer_consume_token (parser->lexer);
}
- else /* RID_IVAR, this case will go away. */
- {
- if (property_ivar_ident != NULL_TREE)
- cp_parser_error (parser, "the %<ivar%> attribute may only be specified once");
- else
- property_ivar_ident = cp_lexer_peek_token (parser->lexer)->u.value;
- cp_lexer_consume_token (parser->lexer);
- }
break;
default:
cp_parser_error (parser, "unknown property attribute");
property_readonly, property_readwrite,
property_assign, property_retain,
property_copy, property_nonatomic,
- property_getter_ident, property_setter_ident,
- /* The following two will be removed. */
- property_copies, property_ivar_ident);
+ property_getter_ident, property_setter_ident);
}
cp_parser_consume_semicolon_at_end_of_statement (parser);