Commit Graph

3 Commits

Author SHA1 Message Date
Joe Groff
abdc7036eb SILGen: Open-code materializeForSet in more situations.
Since this code was first written, we've added more language features that introduce the opportunity for a materializeForSet protocol witness to have an incompatible polymorphic convention with its concrete implementation:

- In a conditional conformance, if a witness comes from a constrained extension with additional protocol requirements, then the witness will require those conformances as additional polymorphic arguments, making its materializeForSet uncallable from code using the protocol witness.
- Given a subscript requirement, the witness may be a generic subscript with a more general signature than the witness, making the generic arguments to the concrete materializeForSet callback incompatible with those expected for the witness.

Longer term, representing materializeForSet patterns using accessor coroutines should obviate the need for this hack. For now, it's necessary for correctness, addressing rdar://problem/35760754.
2018-04-12 10:50:31 -07:00
Rintaro Ishizaki
5c991e7e35 [validation-test] Remove -sil-serialize-all workaround from Collection and Slice tests
This workaround is not required since 49c54870c1
2016-06-20 11:32:46 +09:00
rintaro ishizaki
6e4792cb5b [test] Adjust validation-test/stdlib/{Collection, Slice}
* utils/split_file.py compatible Inputs/Template.swift.gyb
* Result scripts can be ran by %target-run-simple-swift, not GYB
* Renamed stdlib/Slice/*.swift.gyb to stdlib/Slice/*.swift
2016-06-15 11:49:43 +09:00