From 4fccb2c8c9673247bfb9ba176021c9889ce680e8 Mon Sep 17 00:00:00 2001 From: Mark Rowe Date: Thu, 4 Sep 2025 19:21:48 -0700 Subject: [ObjC] Propagate type information from calls to `[super init]` Calls to `objc_msgSendSuper2` with a selector in the `init` family are detected and their arguments are analyzed to determine the receiver class. A call type adjustment is added to update the return type. This handles most calls to `[super init]` from Objective-C code as the compiler generates a straightforward code sequence for these calls. Some calls from Swift are handled, but the Swift compiler generates more varied code so additional work is needed for complete coverage. --- Cargo.lock | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'Cargo.lock') diff --git a/Cargo.lock b/Cargo.lock index 3b05cdec..93b6283d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -274,6 +274,17 @@ dependencies = [ "syn", ] +[[package]] +name = "bstr" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + [[package]] name = "bumpalo" version = "3.19.0" @@ -3488,6 +3499,7 @@ version = "0.1.0" dependencies = [ "binaryninja", "binaryninjacore-sys", + "bstr", "dashmap", "log", "once_cell", -- cgit v1.3.1