| // RUN: %check_clang_tidy %s objc-forbidden-subclassing %t \ |
| // RUN: -config='{CheckOptions: \ |
| // RUN: [{key: objc-forbidden-subclassing.ClassNames, value: "Foo;Quux"}]}' \ |
| // RUN: -- |
| |
| @interface UIImagePickerController |
| @end |
| |
| // Make sure custom config options replace (not add to) the default list. |
| @interface Waldo : UIImagePickerController |
| // CHECK-MESSAGES-NOT: :[[@LINE-1]]:12: warning: Objective-C interface 'Waldo' subclasses 'UIImagePickerController', which is not intended to be subclassed [objc-forbidden-subclassing] |
| @end |
| |
| @interface Foo |
| @end |
| |
| @interface Bar : Foo |
| // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: Objective-C interface 'Bar' subclasses 'Foo', which is not intended to be subclassed [objc-forbidden-subclassing] |
| @end |
| |
| // Check subclasses of subclasses. |
| @interface Baz : Bar |
| // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: Objective-C interface 'Baz' subclasses 'Foo', which is not intended to be subclassed [objc-forbidden-subclassing] |
| @end |
| |
| @interface Quux |
| @end |
| |
| // Check that more than one forbidden superclass can be specified. |
| @interface Xyzzy : Quux |
| // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: Objective-C interface 'Xyzzy' subclasses 'Quux', which is not intended to be subclassed [objc-forbidden-subclassing] |
| @end |
| |
| @interface Plugh |
| @end |
| |
| @interface Corge : Plugh |
| // CHECK-MESSAGES-NOT: :[[@LINE-1]]:12: warning: Objective-C interface 'Corge' subclasses 'Plugh', which is not intended to be subclassed [objc-forbidden-subclassing] |
| @end |