about summary refs log tree commit diff
path: root/src/test/ui/thinlto
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2019-07-11 13:27:41 +0200
committerFelix S. Klock II <pnkfelix@pnkfx.org>2019-07-12 11:44:58 +0200
commit8f171c49ceaf16b1a81125ad9788c9dae70d2111 (patch)
treedeb9ab3635d7186a0dd4843e36f7bf893e09bba3 /src/test/ui/thinlto
parent0324a2b309cd66cb7bd4a156bd0b84cb136e254f (diff)
downloadrust-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