diff options
| author | Felix S. Klock II <pnkfelix@pnkfx.org> | 2019-07-11 13:27:41 +0200 |
|---|---|---|
| committer | Felix S. Klock II <pnkfelix@pnkfx.org> | 2019-07-12 11:44:58 +0200 |
| commit | 8f171c49ceaf16b1a81125ad9788c9dae70d2111 (patch) | |
| tree | deb9ab3635d7186a0dd4843e36f7bf893e09bba3 /src/test/ui/thinlto | |
| parent | 0324a2b309cd66cb7bd4a156bd0b84cb136e254f (diff) | |
| download | rust-8f171c49ceaf16b1a81125ad9788c9dae70d2111.tar.gz rust-8f171c49ceaf16b1a81125ad9788c9dae70d2111.zip | |
Replace `struct_tail` and `struct_lockstep_tails` with variants handling normalization.
The old struct tail functions did not deal with `<T as Trait>::A` and `impl Trait`, at least not explicitly. (We didn't notice this bug before because it is only exposed when the tail (post deep normalization) is not `Sized`, so it was a rare case to deal with.) For post type-checking (i.e. during codegen), there is now `struct_tail_erasing_lifetimes` and `struct_lockstep_tails_erasing_lifetimes`, which each take an additional `ParamEnv` argument to drive normalization. For pre type-checking cases where normalization is not needed, there is `struct_tail_without_normalization`. (Currently, the only instance of this is `Expectation::rvalue_hint`.) All of these new entrypoints work by calling out to common helper routines. The helpers are parameterized over a closure that handles the normalization.
Diffstat (limited to 'src/test/ui/thinlto')
0 files changed, 0 insertions, 0 deletions
