Correctly resolve imports for external classes:
-Replaced CDOCClass’s superClassName with a superClass object that can be either a reference to an internal class (CDOCClass instance) or a symbol representing an external class (CDSymbol instance)
-Map external class symbols in CDLCSymbolTable
-Fixed some bugs with mapping library ordinals to symbols
-Append “-Protocol” to protocol imports to match the behaviour of class-dump’s exporting of protocol headers
-Map CoreFoundation NS* classes to Foundation imports, so imports for NSObject, NSArray, etc use the public headers by default
Use current framework for protocol imports (since they’re currently all declared in the dump for that framework, rather than attempting to infer their real source framework)
-Correctly handle object types with both a class name and a protocol (ie. NSObject<NSCopying> *) referenced in methods and ivars
-Add imports for protocols referenced in types
Forward-declare protocols instead of importing them when possible
-Fixed a check for id types in protocol type string
-Nitpicking protocol type styling (removed the space between the type and the protocol)
-Replaced CDOCCategory’s className property with classRef, which can handle a CDOCClass, CDSymbol, or NSString, and infer the class name based on that
-When a category class is external (ie. the classRef property is a CDSymbol), use the symbol’s source dylib path to import the source framework correctly
-Reverted ObjC1 processor to use its existing behaviour for handling superclasses (just use the raw string), and added the ability for CDOCClass to handle an NSString for superClass to return the correct superClassName
Renamed CDOCClass’s superClass property to superClassRef, for consistency with CDOCCategory, and to avoid confusion with -superclass (all lowercase)