1 // RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -Wdealloc-in-category -verify %s 2 // RUN: not %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -Wdealloc-in-category -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s 3 // rdar://11987838 4 5 @protocol NSObject 6 - dealloc; // expected-error {{return type must be correctly specified as 'void' under ARC, instead of 'id'}} 7 // CHECK: fix-it:"{{.*}}":{6:3-6:3}:"(void)" 8 @end 9 10 @protocol Foo <NSObject> @end 11 12 @interface Root <Foo> 13 @end 14 15 @interface Baz : Root { 16 } 17 @end 18 19 @implementation Baz 20 - (id) dealloc { // expected-error {{return type must be correctly specified as 'void' under ARC, instead of 'id'}} 21 // CHECK: fix-it:"{{.*}}":{20:5-20:7}:"void" 22 } 23 24 @end 25 26 // rdar://15397430 27 @interface Base 28 - (void)dealloc; 29 @end 30 31 @interface Subclass : Base 32 @end 33 34 @interface Subclass (CAT) 35 - (void)dealloc; 36 @end 37 38 @implementation Subclass (CAT) 39 - (void)dealloc { // expected-warning {{-dealloc is being overridden in a category}} 40 } 41 @end 42 43 // rdar://15919775 44 @interface NSObject @end 45 @interface NSError:NSObject 46 @end 47 48 @interface NSError(CAT) 49 - (NSError *)MCCopyAsPrimaryError __attribute__((objc_method_family(new))); 50 @end 51 @implementation NSError(CAT) 52 - (NSError *)MCCopyAsPrimaryError { 53 return 0; 54 } 55 @end 56