From 4018a28ba12c9cbc0e41101bc5d8c1c2d78e355e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 11 Mar 2009 03:47:47 +0000 Subject: [PATCH] Improve the "bad receiver" warning for ObjC message sends to be less confusing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66635 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticSemaKinds.def | 2 +- test/SemaObjC/bad-receiver-1.m | 4 ++-- test/SemaObjC/message.m | 2 +- test/SemaObjC/super.m | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/clang/Basic/DiagnosticSemaKinds.def b/include/clang/Basic/DiagnosticSemaKinds.def index f822abb214..4589a97350 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.def +++ b/include/clang/Basic/DiagnosticSemaKinds.def @@ -982,7 +982,7 @@ DIAG(error_no_super_class, ERROR, DIAG(err_invalid_receiver_to_message, ERROR, "invalid receiver to message expression") DIAG(warn_bad_receiver_type, WARNING, - "bad receiver type %0") + "receiver type %0 is not 'id' or Objective-C interface pointer, consider casting it to 'id'") DIAG(err_bad_receiver_type, ERROR, "bad receiver type %0") DIAG(error_objc_throw_expects_object, ERROR, diff --git a/test/SemaObjC/bad-receiver-1.m b/test/SemaObjC/bad-receiver-1.m index a7377544b8..de90a1eccb 100644 --- a/test/SemaObjC/bad-receiver-1.m +++ b/test/SemaObjC/bad-receiver-1.m @@ -5,7 +5,7 @@ @end void __raiseExc1() { - [objc_lookUpClass("NSString") retain]; // expected-warning {{ "bad receiver type 'int'" }} \ + [objc_lookUpClass("NSString") retain]; // expected-warning {{receiver type 'int' is not 'id'}} \ expected-warning {{method '-retain' not found}} } @@ -14,6 +14,6 @@ typedef const struct __CFString * CFStringRef; void func() { CFStringRef obj; - [obj self]; // expected-warning {{bad receiver type 'CFStringRef' (aka 'struct __CFString const *')}} \\ + [obj self]; // expected-warning {{receiver type 'CFStringRef' (aka 'struct __CFString const *') is not 'id'}} \\ expected-warning {{method '-self' not found}} } diff --git a/test/SemaObjC/message.m b/test/SemaObjC/message.m index a232f5c512..7dc4fc67b3 100644 --- a/test/SemaObjC/message.m +++ b/test/SemaObjC/message.m @@ -80,7 +80,7 @@ int f2() { struct S { int X; } S; int test5(int X) { - int a = [X somemsg]; // expected-warning {{bad receiver type 'int'}} \ + int a = [X somemsg]; // expected-warning {{receiver type 'int' is not 'id'}} \ expected-warning {{method '-somemsg' not found}} \ expected-warning {{incompatible pointer to integer conversion initializing 'id', expected 'int'}} int b = [S somemsg]; // expected-error {{bad receiver type 'struct S'}} diff --git a/test/SemaObjC/super.m b/test/SemaObjC/super.m index 6b4c37f49c..7fe79e22cc 100644 --- a/test/SemaObjC/super.m +++ b/test/SemaObjC/super.m @@ -32,7 +32,7 @@ void f(id super) { [super m]; } void f0(int super) { - [super m]; // expected-warning{{bad receiver type 'int'}} \ + [super m]; // expected-warning{{receiver type 'int' is not 'id'}} \ expected-warning {{method '-m' not found (return type defaults to 'id')}} } void f1(int puper) { -- 2.40.0