Commit Graph

108 Commits

Author SHA1 Message Date
Jordan Rose
d9d49f72a3 Adopt llvm::TrailingObjects as much as possible in AST.
This class formalizes the common case of the "trailing allocation" idiom we use
frequently. I didn't spot any true bugs while making this change, but I did see
places where we were using the wrong pointer type or casting through void* for
no good reason. This will keep us honest.

I'll get to the other libraries soon.
2016-02-08 19:40:47 -08:00
Zach Panzarino
e3a4147ac9 Update copyright date 2015-12-31 23:28:40 +00:00
practicalswift
6e3b700b44 Fix typos. 2015-12-23 00:31:13 +01:00
John McCall
7f3e98ef9d Extract IRGen's fulfillments-search algorithm into a helper class. NFC. 2015-12-15 18:13:24 -08:00
John McCall
2d38e26eca Move IRGen's PolymorphicConvention off of ArchetypeBuilder and onto
direct queries against the GenericSignature.

Thanks to Doug for some fixes to GenericSignature and a lot of advice.

Swift SVN r32481
2015-10-07 00:44:09 +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
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
eea1911fde Split GenericSignature out into its own header. NFC
Swift SVN r32278
2015-09-28 18:13:44 +00:00