Commits

Doug Gregor committed 4554961979d
[Name lookup] Introduce a lookup table into each nominal type declaration. The lookup table for a nominal type declaration provides efficient (O(1)) access to all of the declarations with a given name in a nominal type and its extensions. This is architecturally different from Clang's handling of Objective-C classes and categories/extensions, where each category/extension has its own lookup table, and is meant to reduce the number of hash table lookups required, especially once these hash tables are stored in the module. The lookup table is built and updated lazily as extensions and members are introduced, similarly to Clang's lookup tables. However, the simpler name lookup rules in Swift (vs. C/C++/Objective-C) make this approach actually semantically correct. Swift SVN r5874