Commits

Doug Gregor committed 9400e890d35
Emit @objc classes using namespaced names under a new flag -enable-objc-mangling. Centralize the logic for figuring out what name to use for a class or protocol in the Objective-C runtime. When the flag is enabled (it's still disabled by default), use mangled names for all Swift-defined classes, including those that are @objc. Note that the naming is determined in the AST, because we're also going to use this logic when printing an Objective-C header for Clang's consumption. The mangled names will always start with _Tt, so they're easy to recognize and demangle in various tools or, eventually, in the Objective-C runtime. The new test (test/IRGen/objc_mangling.sil) is the only test of this behavior at the moment. The other test changes are due to the centralized logic tweaking the names of internal constants (_DATA_*, _CATEGORY_*, etc.). This is the majority of <rdar://problem/15506580>. Swift SVN r15588