swift
bd96959d - [cxx-interop] Re-implement namespaces using enums + extensions.

Commit
4 years ago
[cxx-interop] Re-implement namespaces using enums + extensions. C++ namespaces are module-independent, but enums are owned by their module's in Swift. So, to prevent declaring two enums with the same name, this patch implements a new approach to namespaces: enums with extensions. Here's an example: ``` // Module A namespace N { void test1(); } // Module B namespace N { void test2(); } // __ObjC module enum N { } // Swift module A extension N { func test1() } // Swift module B extension N { func test1() } ``` Thanks to @gribozavr for the great idea.
Author
Committer
Parents
Loading