/* * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import void bad1(NSNumber* isNum) { if (isNum) { } } void bad2(NSNumber* isNum) { if (!isNum) { } } void bad3(NSNumber* number1, NSNumber* number2) { if (number1 == nil || number2) { } } @interface TestClass : NSObject @property(atomic) int value; - (BOOL)doStuff:(NSNumber*)number; @end @implementation TestClass - (BOOL)doStuff:(NSNumber*)number { return YES; } @end void bad4(NSNumber* number, TestClass* t) { t.value = number ? 1 : 0; } void ok1(NSNumber* number, TestClass* t) { t.value = number == nil ? 1 : 0; } void ok2(NSNumber* number, TestClass* t) { if ([t doStuff:number]) { } } void ok3(NSNumber* isNum) { if (isNum != nil) { } } void ok4(NSNumber* isNum) { if (nil != isNum) { } } void ok5(NSNumber* isNum) { if (nil == isNum) { } } void ok6(NSNumber* isNum) { if (isNum == nil) { } } void accessor_ok1(NSNumber* num) { if (![num boolValue]) { } } void accessor_ok2(NSNumber* num) { if ([num boolValue]) { } }