Commits

Doug Gregor committed 86701de88a3
Clang importer: (de-)serialize Swift name lookup tables via module file extensions. The recently-introduced module file extensions functionality in Clang allows us to piggy-back the Swift name lookup tables in Clang's module files. When the Swift name lookup tables are enabled, introduce such a module file extension, and wire it into the SwiftLookupTable. The actual contents of the extension block are simple: a single on-disk hash table mapping base names to "full entries", which store the context (e.g., a class, protocol, tag, or TU) and the set of declarations. Allow lazy resolution of declaration IDs deserialized from the extension block to Clang declarations, to try to minimize the set of declarations we must deserialize. Name lookup itself is only used to dump the Swift name lookup tables and ensure we're round-tripping properly.