- if (value == nil)
- string = @"nil";
- else {
- Class _class(object_getClass(value));
- SEL sel(@selector(cy$toCYON:inSet:));
-
- if (class_isMetaClass(_class)) {
- const char *name(class_getName(value));
- if (class_isMetaClass(value))
- string = [NSString stringWithFormat:@"object_getClass(%s)", name];
- else
- string = [NSString stringWithUTF8String:name];
- } else if (objc_method *toCYON = class_getInstanceMethod(_class, sel))
- string = reinterpret_cast<NSString *(*)(id, SEL, bool, std::set<void *> &)>(method_getImplementation(toCYON))(value, sel, objective, objects);
- else if (objc_method *methodSignatureForSelector = class_getInstanceMethod(_class, @selector(methodSignatureForSelector:))) {
- if (reinterpret_cast<NSMethodSignature *(*)(id, SEL, SEL)>(method_getImplementation(methodSignatureForSelector))(value, @selector(methodSignatureForSelector:), sel) != nil)
- string = [value cy$toCYON:objective inSet:objects];
- else goto fail;
- } else fail: {
- if (false);