Commit Graph

305 Commits

Author SHA1 Message Date
Doug Gregor
8dc0e135e0 Minimize and sort the protocols returned by GenericSignature::getConformsTo.
Swift SVN r32445
2015-10-05 19:41:24 +00:00
Doug Gregor
3a5a540b4c Add GenericSignature APIs to query the requirements on dependent types.
Extend GenericSignature to be able to answer queries about the
requirements placed on dependent types, e.g, are the class-bound, to
what protocols must they conform, etc. Implement this using a
lazily-created ArchetypeBuilder on the canonical generic signature.

NFC and as-yet-untested; this is staging for reducing our dependence
on the "all archetypes" list.

Swift SVN r32340
2015-09-30 18:17:31 +00:00
Doug Gregor
ff03d2ce09 Move more GenericSignature method implementations in GenericSignature.cpp NFC
Swift SVN r32339
2015-09-30 18:17:18 +00:00
Doug Gregor
0b2b0df907 Clean up canonicalization of GenericSignatures. NFC
GenericSignature's factory method determining whether the signature
was canonical based solely on whether the types in the parameters and
requirments were canonical. While that is currently true (for legacy
reasons), it is wrong: canonicalization also needs to canonicalize
requirements, including same-type requirements, as is currently done
in the canonical signature "for mangling". Move the "this is
canonical" dependency to the point where the canonical signature is
actually computed, so we can change the definition of canonical
signatures later.

While we're here, don't eagerly compute the canonical generic
signature in GenericSignature::getASTContext().

Swift SVN r32309
2015-09-29 22:05:47 +00:00
Doug Gregor
f460cb7376 Factor GenericSignature implementation into its own file. NFC
Swift SVN r32308
2015-09-29 22:05:44 +00:00