mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[NFC] Adopt TypeBase-isms for GenericSignature
Structurally prevent a number of common anti-patterns involving generic signatures by separating the interface into GenericSignature and the implementation into GenericSignatureBase. In particular, this allows the comparison operators to be deleted which forces callers to canonicalize the signature or ask to compare pointers explicitly.
This commit is contained in:
@@ -318,7 +318,7 @@ private:
|
||||
MutableArrayRef<Serialized<Type>> Types;
|
||||
|
||||
/// Generic signatures referenced by this module.
|
||||
MutableArrayRef<Serialized<GenericSignature *>> GenericSignatures;
|
||||
MutableArrayRef<Serialized<GenericSignature>> GenericSignatures;
|
||||
|
||||
/// Substitution maps referenced by this module.
|
||||
MutableArrayRef<Serialized<SubstitutionMap>> SubstitutionMaps;
|
||||
@@ -864,10 +864,10 @@ public:
|
||||
ModuleDecl *getModule(ArrayRef<Identifier> name, bool allowLoading = false);
|
||||
|
||||
/// Returns the generic signature for the given ID.
|
||||
GenericSignature *getGenericSignature(serialization::GenericSignatureID ID);
|
||||
GenericSignature getGenericSignature(serialization::GenericSignatureID ID);
|
||||
|
||||
/// Returns the generic signature for the given ID or the first error.
|
||||
llvm::Expected<GenericSignature *>
|
||||
llvm::Expected<GenericSignature>
|
||||
getGenericSignatureChecked(serialization::GenericSignatureID ID);
|
||||
|
||||
/// Returns the substitution map for the given ID, deserializing it if
|
||||
|
||||
Reference in New Issue
Block a user