Commits

John McCall committed ce7ddef7108
Change value witnesses to take the metatype as 'self'. The motivations here are that (1) the parametric types that actually need the 'self' argument don't necessarily all want to do what tuples do and put the VWT relative to the metatype at some definable offset and (2) recovering type parameters from the metatype is much better defined than also hopping some relationship back. Plus this allows VWTs to be shared across instances of generic types. Also, I'm going to need to add a VW that takes a metatype, and consistency seems right here. If keeping two values live is actually punishing, I might have to reconsider this. But the VWT is at least always recoverable from the metatype, so.... I ended up abstracting the thing that GenHeap was doing in order to save archetypes for arrays, because I needed it to save metatypes instead of VWTs and because it really needed abstractin'. Swift SVN r3096