[ABI] Factor out the protocol conformance flags (again).

Protocol conformance records are becoming richer and more interesting;
separate out the "flags" word and add the various other fields that we
want there (is-retroactive, is-synthesized-nonunique, # of conditional
requirements).
This commit is contained in:
Doug Gregor
2018-01-16 13:19:03 -08:00
parent 0665e21afe
commit 663d6af063
8 changed files with 226 additions and 143 deletions

View File

@@ -463,6 +463,11 @@ public:
return ContextAndInvalid.getPointer().dyn_cast<AbstractStorageDecl *>();
}
/// A "retroactive" conformance is one that is defined in a module that
/// is neither the module that defines the protocol nor the module that
/// defines the conforming type.
bool isRetroactive() const;
/// Retrieve the type witness and type decl (if one exists)
/// for the given associated type.
std::pair<Type, TypeDecl *>