AST: GenericContexts store a GenericSignature instead of a GenericEnvironment

This eliminates the entire 'lazy generic environment' concept;
essentially, all generic environments are now lazy, and since
each signature has exactly one environment, their construction
no longer needs to be co-ordinated with deserialization.
This commit is contained in:
Slava Pestov
2019-09-05 18:16:38 -04:00
parent e027c82f37
commit 0405ab5ffc
11 changed files with 48 additions and 196 deletions

View File

@@ -68,7 +68,6 @@ namespace swift {
class InFlightDiagnostic;
class IterableDeclContext;
class LazyContextData;
class LazyGenericContextData;
class LazyIterableDeclContextData;
class LazyMemberLoader;
class LazyResolver;
@@ -817,15 +816,6 @@ public:
LazyContextData *getOrCreateLazyContextData(const DeclContext *decl,
LazyMemberLoader *lazyLoader);
/// Get the lazy function data for the given generic context.
///
/// \param lazyLoader If non-null, the lazy loader to use when creating the
/// function data. The pointer must either be null or be consistent
/// across all calls for the same \p func.
LazyGenericContextData *getOrCreateLazyGenericContextData(
const GenericContext *dc,
LazyMemberLoader *lazyLoader);
/// Get the lazy iterable context for the given iterable declaration context.
///
/// \param lazyLoader If non-null, the lazy loader to use when creating the