// RUN: %check_clang_tidy %s objc-assert-equals %t -- -- -I %S/Inputs/assert #include "XCTestAssertions.h" // Can't reference NSString directly so we use this getStr() instead. __typeof(@"abc") getStr(void) { return @"abc"; } void foo(void) { XCTAssertEqual(getStr(), @"abc"); // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use XCTAssertEqualObjects for comparing objects // CHECK-FIXES: XCTAssertEqualObjects(getStr(), @"abc"); XCTAssertEqual(@"abc", @"abc"); // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use XCTAssertEqualObjects for comparing objects // CHECK-FIXES: XCTAssertEqualObjects(@"abc", @"abc"); XCTAssertEqual(@"abc", getStr()); // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use XCTAssertEqualObjects for comparing objects // CHECK-FIXES: XCTAssertEqualObjects(@"abc", getStr()); XCTAssertEqual(getStr(), getStr()); // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use XCTAssertEqualObjects for comparing objects // CHECK-FIXES: XCTAssertEqualObjects(getStr(), getStr()); // Primitive types should be ok XCTAssertEqual(123, 123); XCTAssertEqual(123.0, 123.45); // FIXME: This is the case where we don't diagnose properly. // XCTAssertEqual(@"abc" != @"abc", @"xyz" != @"xyz") }