llvm-project/clang/test/SemaObjC/method-def-1.m
John McCall 071df46743 Implement the newest status quo for method override checking. The idea now
is that we need more information to decide the exact conditions for whether
one ObjCObjectPointer is an acceptable return/parameter override for another,
so we're going to disable that entire class of warning for now.  The
"forward developement" warning category, -Wmethod-signatures, can receive
unrestricted feature work, and when we're happy with how it acts, we'll
turn it on by default.

This is a pretty conservative change, and nobody's totally content with it.

llvm-svn: 117524
2010-10-28 02:34:38 +00:00

41 lines
846 B
Objective-C

// RUN: %clang_cc1 -Wmethod-signatures -fsyntax-only -verify %s
@interface foo
- (int)meth;
@end
@implementation foo
- (int) meth { return [self meth]; }
@end
// PR2708
@interface MyClass
+- (void)myMethod; // expected-error {{expected selector for Objective-C method}}
- (vid)myMethod2; // expected-error {{expected a type}}
@end
@implementation MyClass
- (void)myMethod { }
- (vid)myMethod2 { } // expected-error {{expected a type}}
@end
@protocol proto;
@protocol NSObject;
//@protocol GrowlPluginHandler <NSObject> @end
@interface SomeClass2
- (int)myMethod1: (id<proto>)
arg; // expected-note {{previous definition is here}}
@end
@implementation SomeClass2
- (int)myMethod1: (id<NSObject>)
arg { // expected-warning {{conflicting parameter types in implementation of 'myMethod1:': 'id<proto>' vs 'id<NSObject>'}}
}
@end