Introduce special decl names

Special DeclNames represent names that do not have an identifier in the
surface language. This implies serializing the information about whether
a name is special together with its identifier (if it is not special)
in both the module file and the swift lookup table.
This commit is contained in:
Alex Hoppen
2017-05-30 19:43:28 +02:00
parent 2e512cb7fe
commit f8c2692f79
29 changed files with 424 additions and 151 deletions

View File

@@ -740,7 +740,11 @@ public:
/// Returns the type with the given ID, deserializing it if needed.
llvm::Expected<Type> getTypeChecked(serialization::TypeID TID);
/// Returns the identifier with the given ID, deserializing it if needed.
/// Returns the base name with the given ID, deserializing it if needed.
DeclBaseName getDeclBaseName(serialization::IdentifierID IID);
/// Convenience method to retrieve the identifier backing the name with
/// given ID. Asserts that the name with this ID is not special.
Identifier getIdentifier(serialization::IdentifierID IID);
/// Returns the decl with the given ID, deserializing it if needed.