summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-02-15 22:20:11 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-02-15 22:20:11 +0000
commit8efe0ec8992881b9d727b9214fa094fd48c91f0d (patch)
tree9d1595c4f3fb8a00facec0478564682122a18242
parent3e0c140c501c0ee194bf02d92451d6e7d638b4fa (diff)
downloadbcm5719-llvm-8efe0ec8992881b9d727b9214fa094fd48c91f0d.tar.gz
bcm5719-llvm-8efe0ec8992881b9d727b9214fa094fd48c91f0d.zip
Issue a bettter diagnostics for incorrect property setter name.
(radar 7647953). llvm-svn: 96284
-rw-r--r--clang/include/clang/Basic/DiagnosticCommonKinds.td3
-rw-r--r--clang/lib/Parse/ParseObjc.cpp3
-rw-r--r--clang/test/Parser/objc-property-syntax.m2
3 files changed, 7 insertions, 1 deletions
diff --git a/clang/include/clang/Basic/DiagnosticCommonKinds.td b/clang/include/clang/Basic/DiagnosticCommonKinds.td
index 7e14a329dca..66f84dbbbab 100644
--- a/clang/include/clang/Basic/DiagnosticCommonKinds.td
+++ b/clang/include/clang/Basic/DiagnosticCommonKinds.td
@@ -31,6 +31,9 @@ def note_also_found : Note<"also found">;
// Parse && Lex
def err_expected_colon : Error<"expected ':'">;
+def err_expected_colon_after_setter_name : Error<
+ "method name referenced in property setter attribute "
+ "must end with ':'">;
// Parse && Sema
def err_no_declarators : Error<"declaration does not declare anything">;
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp
index 3757ee2f6d2..d1c9be233fe 100644
--- a/clang/lib/Parse/ParseObjc.cpp
+++ b/clang/lib/Parse/ParseObjc.cpp
@@ -515,7 +515,8 @@ void Parser::ParseObjCPropertyAttribute(ObjCDeclSpec &DS, DeclPtrTy ClassDecl,
DS.setSetterName(Tok.getIdentifierInfo());
ConsumeToken(); // consume method name
- if (ExpectAndConsume(tok::colon, diag::err_expected_colon, "",
+ if (ExpectAndConsume(tok::colon,
+ diag::err_expected_colon_after_setter_name, "",
tok::r_paren))
return;
} else {
diff --git a/clang/test/Parser/objc-property-syntax.m b/clang/test/Parser/objc-property-syntax.m
index b5f57f305f3..064a2090b00 100644
--- a/clang/test/Parser/objc-property-syntax.m
+++ b/clang/test/Parser/objc-property-syntax.m
@@ -5,8 +5,10 @@
};
@property unsigned char bufferedUTF8Bytes[4]; // expected-error {{property cannot have array or function type}}
@property unsigned char bufferedUTFBytes:1; // expected-error {{property name cannot be a bitfield}}
+@property(nonatomic, retain, setter=ab_setDefaultToolbarItems) MyClass *ab_defaultToolbarItems; // expected-error {{method name referenced in property setter attribute must end with ':'}}
@end
@implementation MyClass
+@dynamic ab_defaultToolbarItems;
@end
OpenPOWER on IntegriCloud